8 votes

Existe-t-il une variable d'environnement pour le noeud esclave home dans JENKINS ?

Nous savons qu'il existe une variable d'environnement nommée JENKINS_HOME, nous pouvons donc l'utiliser partout comme $JENKINS_HOME. Mais maintenant, lorsque je lance des projets sur des nœuds esclaves, j'ai besoin d'utiliser le répertoire personnel de jenkins (qui est nommé "remote FS Root" lors de la définition d'un nœud esclave) sur le nœud esclave comme une variable. Et j'ai constaté que $JENKINS_HOME est toujours le répertoire personnel de jenkins sur le nœud maître, même si je lance des projets sur le nœud esclave.

Quelqu'un peut aider ? Merci.

2voto

Ian W Points 1089

Vieille question, mais il semble qu'on n'y ait jamais répondu

La variable n'est pas directement exposée dans l'environnement du poste, mais vous pouvez la découvrir ...

Par défaut (c'est-à-dire que vous n'avez pas défini un espace de travail personnalisé),

WORKSPACE=<RemoteFS>/<JOB_NAME>
et JOB_NAME inclut les dossiers si vous les utilisez.

ie : WORKSPACE=/path/to/remoteFSroot/myfolder/jobname
et JOB_NAME=myfolder/jobname

Vous pouvez manipuler à partir de là. Mais, il ne devrait pas être nécessaire de stocker les données à l'intérieur du remoteFS Root et c'est même probablement une mauvaise idée, puisque vous devriez être en mesure de supprimer tous les espaces de travail sans impact sur vos données. Stockez-les simplement dans un autre répertoire (ou même un NFS partagé entre tous vos esclaves) et référencez-les avec un chemin complet.

0voto

sti Points 4338

Si vous voyez JENKINS_HOME c'est juste un effet secondaire du script que vous utilisez pour démarrer Jenkins master. Vous ne pouvez pas lui faire confiance pour qu'elle soit toujours disponible.

Vous pourriez peut-être expliquer pourquoi vous pensez avoir besoin de connaître le répertoire d'origine de l'esclave ?

0voto

MatthiasSommer Points 676

En utilisant le plugin Jenkins pipeline, je récupère le répertoire racine distant du nœud esclave où le travail est en cours d'exécution avec

run.getEnvironment(listener).get("BASE")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X