試圖從我的Jenkins執行器執行sudo
命令,我得到標題錯誤。Jenkins運行tomcat8 sudo:沒有tty存在,也沒有用NOPASSWD指定askpass程序
在主機(執行程序)上,我已經配置了sudoers
文件以包含此行:jenkins ALL=(ALL) NOPASSWD: ALL
最後。
我試圖運行的命令是sudo service tomcat8 restart
。
檢查可用的答案我得到了我需要的所有東西,或者我錯過了什麼?
試圖從我的Jenkins執行器執行sudo
命令,我得到標題錯誤。Jenkins運行tomcat8 sudo:沒有tty存在,也沒有用NOPASSWD指定askpass程序
在主機(執行程序)上,我已經配置了sudoers
文件以包含此行:jenkins ALL=(ALL) NOPASSWD: ALL
最後。
我試圖運行的命令是sudo service tomcat8 restart
。
檢查可用的答案我得到了我需要的所有東西,或者我錯過了什麼?
可能有一種解決方法:由於Barmar在對帖子「Use sudo without password INSIDE a script」的評論中指出,可以允許由sudoer執行專用腳本。假設你有一個線
jenkins ALL=(ALL) NOPASSWD:/path/to/restart.sh
這意味着詹金斯可以做須藤/path/to/restart.sh
沒有密碼。
如果您現在將您的命令service tomcat8 restart
寫入restart.sh
,則應該執行sudo /path/to/restart.sh
的工作。
嘗試關閉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
https://stackoverflow.com/a/29685946/947526 –
須藤:1次不正確的密碼嘗試 – Jacob
有可能是與你的sudo設置的問題。你用visudo嗎?其他用戶的設置是否一樣?你可以嘗試手動嗎? –