如何从vsphere_guest检查ipaddresses变量导致playbook?

时间:2017-01-18 08:03:39

标签: ansible ansible-playbook ansible-2.x ansible-facts

我有部署vitrual机器的playbook。我想延迟运行playbook直到vm获取ip-address。我尝试make循环但是有错误。

  tasks:
    - vsphere_guest:
        vcenter_hostname: "{{ vcenter_hostname }}"
        username: "{{ vcenter_user }}"
        password: "{{ vcenter_pass }}"
        guest: "{{ inventory_hostname }}"
        vmware_guest_facts: yes
        validate_certs: no
      register: vsphere_facts
      until: vsphere_facts.ansible_facts.hw_eth0.ipaddresses[0] = "192.168.250.*"
      retries: 20
      delay: 60
  

{“failed”:true,“msg”:“条件检查   'vsphere_facts.ansible_facts.hw_eth0.ipaddresses [0] =   “192.168.250。 \”'失败了。错误是:模板错误   模板字符串:预期标记'语句块结束',得到'='。   字符串:{%if vsphere_facts.ansible_facts.hw_eth0.ipaddresses [0] =   \“192.168.250。 \”%} True {%else%} False {%endif%}“}

1 个答案:

答案 0 :(得分:3)

您应该选择:

until: vsphere_facts.ansible_facts.hw_eth0.ipaddresses[0] | match("192.168.250.")

直接比较(使用==)无法处理*等通配符。