Comment puis-je dire à Jenkins de gérer un projet spécifique sur un esclave particulier?
J'ai configuré un nœud maître Jenkins et un nœud esclave que je souhaite utiliser pour la mise en place d'une application. Mais je n'arrive pas à comprendre comment configurer le projet pour qu'il s'exécute sur le nœud esclave que j'ai créé.
Réponses:
Activez la case à cocher "Restreindre où ce travail peut être exécuté" dans la configuration de votre travail et spécifiez le nom de votre esclave.
Si vous ajoutez ultérieurement des esclaves, vous pouvez définir des étiquettes pour chaque esclave et spécifier celles-ci dans vos configurations de travail.
Voir cette documentation de référence:
la source
Si vous exécutez un travail Pipeline, vous souhaitez d'abord ajouter une étiquette (par exemple, "esclave") au nœud esclave (ou à l'agent, tel qu'il semble être appelé maintenant).
Ensuite, dans le script de pipeline, vous spécifiez l'étiquette sur laquelle le travail est exécuté:
Pipeline déclaratif:
Pipeline scripté:
Ce travail s’exécutera désormais sur n’importe quel noeud portant l’étiquette «esclave». Si vous souhaitez que le travail ne soit exécuté que sur cet esclave, ne réutilisez pas le libellé. Et bien sûr, l'étiquette ne doit pas nécessairement être «esclave»; ça peut être ce que tu veux.
Mise à jour:
Dans le pipeline scripté, si votre nœud s'appelle "Mon nœud", vous pouvez également procéder comme suit:
Si vous souhaitez que le bloc de code ne s'exécute que sur ce nœud particulier, cela est utile. Toutefois, l'utilisation d'étiquettes est plus flexible et peut faciliter l'ajout de nœuds pour partager la charge de travail.
la source
Si vous souhaitez utiliser Node / Label en tant que paramètre, installez NodeLabel Parameter Plugin
la source
params += new org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue('testServer', testServerLabel);
(au lieu du paramètre habituelStringParameterValue
).