Comment exécuter un script comme root dans Jenkins?
j'ai besoin d'exécuter un script shell dans Jenkins en tant que root au lieu de l'utilisateur par défaut. De quoi ai-je besoin de changer?
Mon fichier sudoers est comme ceci:
# User privilege specification
root ALL=(ALL) ALL
igx ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
# Members of the admin group may gain root privileges
%admin ALL=(ALL) NOPASSWD:ALL
root ALL=(ALL) ALL
jenkins ALL=NOPASSWD: /var/lib/jenkins/workspace/ing00112/trunk/source/
jenkins ALL=(ALL) NOPASSWD:ALL
#Defaults:jenkins !requiretty
3 réponses
vous devez exécuter le script en utilisant sudo
:
sudo /path/to/script
mais avant que vous devez autoriser jenkins
pour tun le script dans /etc/sudoers
.
jenkins ALL = NOPASSWD: /path/to/script
la réponse de@Igor Chubin est correcte à 100%, mais n'ouvre jamais le fichier sudoer avec un éditeur normal. utilisez toujours visudo
tapez juste
sudo visudo
cela va vous prendre à /etc/sudoers
et lors de la sauvegarde il s'assurera qu'il n'y a pas d'erreur dans le formatage.
si vous faites une erreur dans le fichier sudoer, vous perdrez l'accès à sudo, donc utilisez toujours visudo
je me rends compte que je suis en retard à la fête sur cette question, mais pour des raisons de référence, j'ai pensé jeter mon 2c ici: j'utilise le plugin SSH pour Jenkins pour accomplir ceci (il suffit de configurer une cible localhost). De cette façon, je peux contenir le script directement dans Jenkins (comme une étape normale "Execute shell"), au lieu d'utiliser sudo pour invoquer un script externe.