如何检查剧本中 vsphere_guest 结果中的 ipaddresses 变量?

How to check ipaddresses variable from vsphere_guest results in playbook?

我有部署虚拟机的剧本。我想要延迟 运行 剧本,直到 vm 获得 ip 地址。我尝试 make loop 但有错误。

  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": "The conditional check 'vsphere_facts.ansible_facts.hw_eth0.ipaddresses[0] = \"192.168.250.\"' failed. The error was: template error while templating string: expected token 'end of statement block', got '='. String: {% if vsphere_facts.ansible_facts.hw_eth0.ipaddresses[0] = \"192.168.250.\" %} True {% else %} False {% endif %}"}

你应该选择:

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

直接比较(与==)无法处理像*这样的通配符。