簡體   English   中英

使用詹金斯運行Ansible

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM