Jenkins: FTP / SSH de déploiement, y compris la suppression et le déplacement de fichiers
Je me demandais comment faire pour obtenir mon web-projets déployés à l'aide de ftp et/ou ssh.
Nous avons actuellement un self-made-système de déploiement qui est capable de gérer cela, mais je veux passer à Jenkins.
Je sais qu'il y a la publication des plugins et qu'ils fonctionnent bien quand il s'agit de téléchargement de construire des artefacts. Mais ils ne peuvent pas supprimer ou déplacer des fichiers.
Avez-vous des conseils, des conseils ou des idées concernant mon problème?
OriginalL'auteur 4eyes | 2011-11-22
Vous devez vous connecter pour publier un commentaire.
La La publication de Plus de SSH plugin vous permet d'envoyer des commandes à l'aide de ssh vers le serveur distant. Cela fonctionne très bien, nous aussi effectuer quelques déplacer/supprimer des fichiers avant le déploiement de la nouvelle version, et n'avait aucun problème que ce soit à l'aide de cette approche.
Si les fichiers que vous souhaitez déménager, la suppression sont déjà dans git, vous pourriez cloner votre dépôt sur les serveurs de votre déploiement et l'utilisation de git en ligne de commande pour extraire les modifications à l'aide de la publication de plus de ssh. Cela peut être une bonne solution si vous avez des fichiers statiques, qui n'ont pas besoin d'être compilé ou vérifié, juste besoin de déploiement. Serait probablement mieux si vous avez séparée de repos pour le code source et les fichiers statiques.
Merci. Nos projets sont tous des "statique" des fichiers que nous développons php (TYPO3) basée sur le logiciel. Je suis conscient que je peux obtenir le déplacé / supprimé des fichiers à l'aide de git, en fait c'est ce que nous avons fait dans notre propre simple phing déploiement basé sur un système. Je suis juste anstonished, qu'il ne semble pas être un plugin couvrant propre et efficace ftp/ssh de déploiement. Je me demande comment d'autres entreprises de déployer leurs projets web -, ils n'utilisent pas de ftp(s)? Ou un peu plus cher personnalisé, hébergement avec ssh et/ou git sur le serveur live?
OriginalL'auteur pushy
La façon la plus simple pour gérer les supprimer et déplacer des éléments à l'est par la suppression de tout sur le serveur avant de déployer une nouvelle version à l'aide de l'un des " La publication de plus de " extensions. Je dirais que c'est vraiment la seule façon de connaître la version déployée est celle que vous voulez. Si vous voulez plus de versions de système d'comportement de style, vous avez besoin d'utiliser un système de gestion de versions ou peut-être rsync qui permettra de couvrir une partie des.
Si vos besoins sont très spécifiques, vous pouvez développer votre propre convention pour marquer les suppressions et ont leur être effectué par un autre script (comme vous le feriez pour les modifications de base de données à l'aide de Liquibase ou quelque chose comme ça).
Par le chemin: je vous conseille de ne pas mettre à jour automatiquement vos sites après chaque génération à l'aide de la " publier sur ...' extension. Dans le cas où nous avons vraiment envie de faire un live site est automatiquement mis à jour, nous comptons sur la Promu Construit Plugin pour le garder près entièrement automatique, mais ajouter un peu de sécurité.
OriginalL'auteur Simon Groenewolt
Je suis venu avec une solution simple pour supprimer les fichiers supprimés et télécharger les modifications sur un serveur FTP distant comme une action de construire dans Jenkins à l'aide d'un simple lftp miroir de script. Lftp Page De Manuel
En Bref, vous créez un fichier de configuration dans votre jenkins répertoire de l'utilisateur ~/.netrc et de le remplir avec vos informations d'identification FTP.
Créer un lftp script déployer.lftp et déposez-le dans la racine de votre .repo git
Puis ajouter un "Exec Shell" construire l'action à exécuter lftp sur le script.
Le lftp script
J'ai écrit un article expliquant comment je garder FTP en synchronisation avec Git pour un site WordPress, je ne pouvais accès via FTP. L'article explique comment synchroniser à partir de FTP Git puis comment utiliser Jenkins, de construire et de déployer retour à FTP. Cette approche n'est pas parfait, mais il fonctionne. Il ne télécharge que les fichiers modifiés, et il supprime les fichiers hors de l'hôte qui ont été retirés de la repo git (et vice versa)
OriginalL'auteur Houghtelin