shell hudson jenkins root

shell - ¿Cómo ejecutar un script como root en Jenkins?



hudson (3)

Debe ejecutar el script usando sudo :

sudo /path/to/script

Pero antes debe permitir que jenkins ajuste el script en /etc/sudoers .

jenkins ALL = NOPASSWD: /path/to/script

Necesito ejecutar un script de shell en Jenkins como root en lugar del usuario predeterminado. ¿Qué necesito cambiar?

Mi archivo sudoers es así:

# 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


La respuesta de @Igor Chubin es 100% correcta, pero nunca abre el archivo sudoer con un editor normal. siempre use visudo

Sólo tipo

sudo visudo

esto lo llevará a /etc/sudoers y al guardarlo se asegurará de que no haya ningún error en el formateo.

si comete un error en el archivo sudoer, perderá el acceso a sudo, por lo tanto, siempre use visudo


Me doy cuenta de que llego tarde a la fiesta con esta pregunta, pero como referencia, pensé en lanzar mi 2c aquí: uso el complemento SSH para que Jenkins lo logre (simplemente configure un objetivo del host local). De esta manera, puedo contener el script directamente dentro de Jenkins (como un paso normal de "Ejecutar shell"), en lugar de usar sudo para invocar un script externo.