如何检查剧本中 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.")
直接比较(与==
)无法处理像*
这样的通配符。
我有部署虚拟机的剧本。我想要延迟 运行 剧本,直到 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.")
直接比较(与==
)无法处理像*
这样的通配符。