2016-10-18 63 views
0

我正在使用Jenkins採取一些參數,生成一個ansible-playbook命令並運行它。我的Jenkins服務器也是我的Ansible服務器。通過Jenkins運行Ansible劇本

我的殼說::

echo $ESXi_IP 
echo $VM_NAME 
echo $NIC1_MAC 
echo $NIC2_MAC 
echo $NIC3_MAC 
echo $NIC4_MAC 
echo $ESXi_HOSTNAME 
echo $PLAYBOOK 

ansible-playbook $PLAYBOOK --extra-vars "esxi_ip=$ESXi_IP vm_name=$VM_NAME nic1_mac=$NIC1_MAC nic2_mac=$NIC2_MAC nic3_mac=$NIC3_MAC nic4_mac=$NIC4_MAC esxi_hostname=$ESXi_HOSTNAME" 

當我運行的作業,輸出爲::

+ ansible-playbook /root/ansible/sc-ece.yaml --extra-vars 'esxi_ip=5.232.66.49 vm_name=JenkinsTest nic1_mac=00:50:C0:A8:01:02 nic2_mac=00:50:0A:A9:37:A5 nic3_mac=00:50:0A:FF:FE:4C nic4_mac=00:50:AC:10:01:65 esxi_hostname=tmolab13-14iamesxi4' 
ERROR! the playbook: /root/ansible/sc-ece.yaml could not be found 

的劇本路徑是正確的。根本沒有問題。

這裏似乎缺少什麼?

+0

在劇本執行前添加'file $ PLAYBOOK'以100%確定該文件已到位。 –

+2

也許文件權限?詹金斯是以root身份運行的嗎? –

+1

Jenkins通常以Jenkins用戶身份運行,並且該劇本位於'/ root'中,因此權限在這裏似乎是最可能出現的問題。 –

回答

0

你是對的Matt & Dave。該文件夾的權限是一個問題。謝謝 !