如何在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来调用外部脚本。