【发布时间】:2016-10-21 01:06:34
【问题描述】:
我正在使用 Jenkins 获取一些参数,生成 ansible-playbook 命令并运行它。我的 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
剧本路径正确。根本没有问题。
这里似乎缺少什么?
【问题讨论】:
-
在 playbook 执行之前添加
file $PLAYBOOK以 100% 确定文件就位。 -
也许是文件权限? Jenkins 是否以 root 身份运行?
-
Jenkins 通常以 Jenkins 用户身份运行,并且剧本位于
/root中,因此权限似乎是这里最可能出现的问题。