[英]Run ansible using Jenkins
我在詹金斯(Jenkins)創建了一個工作,我想使用ansible構建項目。 我想在多個主機上運行命令(這就是為什么我使用ansible的原因)。 當我嘗試運行項目時,它失敗並出現一些權限錯誤:
/home/ubuntu/install.sh -s -U ubuntu -f 5
FATAL: command execution failed
java.io.IOException: Cannot run program "/usr/bin/ansible" (in directory "/var/lib/jenkins/jobs/Standard Demo/workspace"): error=13, Permission denied
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
at hudson.Proc$LocalProc.<init>(Proc.java:244)
at hudson.Proc$LocalProc.<init>(Proc.java:216)
你知道是什么問題嗎? 我以管理員用戶身份登錄到jenkins服務器。
這不是Ansible問題,而是Jenkins中的配置問題。 正如其他人指出的那樣,默認情況下,Jenkins將以“普通用戶”身份運行(通常是jenkins
)。 那是作業和步驟(包括您要調用的shell腳本)將作為其運行的用戶。 在您的情況下,該用戶沒有足夠的權限來運行Ansible。
我不建議更改此默認用戶,因為 此設置有很好的安全原因,並且b。 正確的做法實際上可能很復雜,因為您必須解決所有Jenkins的權限問題才能匹配新用戶。 但是,在腳本構建步驟中執行諸如sudo
之類的操作非常容易。 只需使用該工具(以及正確配置的/etc/sudoers
)來獲得構建期間所需的權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.