如何在Jenkins中以root身份运行脚本?

我需要在Jenkins中以root身份运行一个shell脚本,而不是缺省用户。 我需要改变什么?

我的sudoers文件是这样的:

# 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 

您必须使用sudo运行脚本:

 sudo /path/to/script 

但在你必须允许jenkins/etc/sudoers jenkins脚本之前。

 jenkins ALL = NOPASSWD: /path/to/script 

@Iub Chubin的回答是100%正确的,但是从不用普通的编辑器打开sudoer文件。 总是使用visudo

只需键入

 sudo visudo 

这将把你带到/etc/sudoers ,并保存它将确保没有格式错误。

如果你在sudoer文件中出现错误,你将失去sudo访问权限,所以一定要使用visudo

我意识到在这个问题上我迟到了,但为了参考起见,我想我会把我的2c放在这里:我使用SSH插件来完成这个任务(简单地configuration一个本地主机目标)。 这样,我可以直接在Jenkins中包含脚本(如正常的“Execute shell”步骤),而不是使用sudo来调用外部脚本。