如何在剧本中做等待元素

How to do waiting elements in playbook

我有创建虚拟机的剧本。我需要等待什么时候会出现网络。元素不存在怎么办?

部分我的剧本:

    - ovirt_nics_facts:
        vm: "{{ vm }}"
        auth: "{{ ovirt_auth }}"
      register: nics_facts
      until: (ovirt_nics[0].reported_devices[0].ips[0].address is search("10.10.20.")) or
             (ovirt_nics[0].reported_devices[0].ips[0].address is search("192.168.250."))
      retries: 20
      delay: 60

错误:

fatal: [localhost]: FAILED! => {"msg": "The conditional check 'ovirt_nics[0].reported_devices[0].ips[0].address is defined' failed. The error was: error while evaluating conditional (ovirt_nics[0].reported_devices[0].ips[0].address is defined): list object has no element 0"}

我决定麻烦了:

- name: add vm to temporary inventory
  block:
    - ovirt_nics_facts:
        vm: "{{ vm }}"
        auth: "{{ ovirt_auth }}"
      register: nics_facts
      until: ovirt_nics[0].reported_devices|length > 0
      retries: 20
      delay: 60