Jenkins: Comment faire de la seule tâche de créer et de déployer sur les deux serveurs
J'ai le code dans un référentiel. Maintenant, je veux créer un job qui va construire le code à partir du référentiel et de le déployer sur les deux serveurs.
Droit maintenant, j'ai créer deux emplois avec exactement la même configuration. Le seul changement est le serveur sur lequel il a besoin de déployer.
Est-il possible de faire cela avec un seul emploi?
- Pouvez-vous avoir un post-action de construire sur un emploi à l'appel de l'autre emploi?
- Le point est que je ne veux pas de maintenir les deux travaux. Je ne veux pas construire même code deux fois comme il en est de même de la guerre de fichier. Je tiens juste à déployer sur les deux serveurs.
- Vous pouvez ensuite configurer un Jenkins construire et ajouter 2 'tâches' pour faire les déploiements.
- une fois que je sélectionne le déploiement. il n'est pas en me permettant de sélectionner une deuxième fois.
Vous devez vous connecter pour publier un commentaire.
Puis-je vous suggérons d'utiliser ce plugin maven. Vous pouvez configurer lot de tâches (soit maven objectifs, ou des scripts) que vous pouvez joindre à votre maven emplois.
https://wiki.jenkins-ci.org/display/JENKINS/Batch+Tâches+Plugin
Tout d'abord, vous avez un Jenkins travail qui construit votre travail normalement.
Puis, à l'aide de ce plugin, vous pouvez configurer deux tâches supplémentaires sur la même Jenkins emploi appelé, disons, "Déploiement-server-1" et "Déployer-server-2".
Après vous construisez votre travail, cliquez sur la "Tâche" bouton et vous pouvez facilement exécuter votre déployer des tâches.
De sorte que le processus est:
Si vous avez un coup d'oeil sur le lien que j'ai ajouté pour le Lot Tash Plugin, ils ont une seule tâche appelée "libération". Imaginez, vous pouvez avoir plus de tâches à faire ce que vous voulez.
Vous avez probablement besoin des droits d'administrateur sur votre serveur Jenkins afin d'installer ce plugin, si il n'y est pas déjà...
J'ai résolu ce problème en ajoutant Flexible Publier plugin, et comme une condition de l'Action, à l'aide de l'Exécuter: "Toujours". Maintenant, il est possible d'ajouter autant d'actions que comme des Flexible de publier conditionnelle d'action, et de toutes ces actions peuvent être "à Déployer la GUERRE/l'OREILLE à container".
Vous pouvez déployer plusieurs serveurs à l'aide de la Nœud et l'Étiquette de paramètre plugin.
Ajouter les serveurs que vous souhaitez déployer votre code à l'aide de Jenkins nœuds: Gérer Jenkins > Gérer des nœuds > Nouveau nœud.
Assurez-vous d'ajouter une étiquette à chaque nœud de sorte que vous pouvez les regrouper et de les déployer à ce groupe.
Créer un nouveau freestyle projet et vérifier la Ce projet est paramétrée option. Ajouter un paramètre et choisissez Étiquette, et ajouter l'étiquette que vous venez de créer pour vos serveurs (les nœuds).
À partir d'ici, à chaque étape de génération de répliquer lui-même en chaque nœud étiqueté, de sorte que vous pouvez récupérer votre code de référentiel à l'aide d'une SCM plugin, GitHub, GitLab, etc. ou directement à partir de votre serveur, c'est à vous, et le code sera déployé sur chaque nœud.
Être conscient que si votre code besoin d'être compilé, il sera compilé sur le serveur distant. Aussi, chaque fois que cette version est déployée sur un nœud, créera un construire en construire votre file d'attente.
Vous pouvez utiliser Copie Artefact Plugin, où vous pouvez copier construire des artefacts d'un projet à l'autre. Si vous avez juste sur l'emploi, qui s'appuie ce dont vous avez besoin et il peut être partagée avec d'autres emplois.
J'ai eu le même problème, je suis sur le point de le résoudre à l'aide de plusieurs curl consolidés. Voir mon post http://martin.podval.eu/2013/10/tomcat-7-remote-deployment.html
Eh bien, jenkins ne me permet pas d'ajouter plusieurs ligne de commande de l'exécution des tâches, j'ai donc besoin d'utiliser trois curl déclarations.
J'ai résolu le même problème avec des tâches ant - obtenir de l'url du serveur en tant que paramètre d'entrée de construire.fichier de propriétés. Dans mon cas, il y avait plusieurs environnements de soutien avec le même script, 1-2 serveurs sur chaque.