Jenkins运行tomcat8 sudo:没有tty存在且没有使用NOPASSWD指定的askpass程序

时间:2017-08-11 08:29:31

标签: tomcat jenkins sudo sudoers

尝试从我的Jenkins执行程序执行<xsl:template match="*[@key]"> <xsl:element name="{@key}">{.}</xsl:element> </xsl:template> 命令,我得到标题错误。

在主机(执行程序)上,我已将sudo文件配置为包含此行:sudoers在最后。

我尝试运行的命令是jenkins ALL=(ALL) NOPASSWD: ALL

检查可用的答案我得到了所有我需要的或者我错过了什么?

2 个答案:

答案 0 :(得分:0)

可能有一种解决方法:正如Barmar在对帖子“Use sudo without password INSIDE a script”的评论中指出的那样,可以允许sudoer执行专用脚本。假设你有一行

 jenkins ALL=(ALL) NOPASSWD:/path/to/restart.sh

这意味着Jenkins可以在没有密码的情况下执行sudo /path/to/restart.sh

如果您现在将service tomcat8 restart命令放在restart.sh中,则sudo /path/to/restart.sh应该完成这项工作。

答案 1 :(得分:0)

尝试为jenkins用户关闭requiretty。我建议您在sudoers文件中使用command aliases

Cmnd_Alias RESTART_TOMCAT = /sbin/service tomcat8 *, /etc/init.d/tomcat8 *

Defaults:jenkins !requiretty

jenkins  ALL=(root) NOPASSWD: RESTART_TOMCAT