【问题标题】:Running an Ansible playbook via Jenkins通过 Jenkins 运行 Ansible 剧本
【发布时间】: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 中,因此权限似乎是这里最可能出现的问题。

标签: jenkins ansible


【解决方案1】:

你是正确的马特和戴夫。该文件夹的权限是一个问题。谢谢 !

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 2017-09-26
    相关资源
    最近更新 更多