各位,以下代码产生了错误。
代码:
{% for v in hostvars.iteritems() %}
{{ v['ansible_all_ipv4_addresses'][0] }} {{ v['ansible_hostname'] }}
{% endfor %}
错误:
{'msg': "One or more undefined variables: 'tuple object' has no attribute 'ansible_all_ipv4_addresses'", 'failed': True}
如果我想要一个像这样的 /etc/hosts 文件,它应该是什么样的:
192.168.111.222 hostnameA
192.168.111.211 hostnameB
...
谢谢!
答案1
查看错误消息
‘tuple object’没有属性‘ansible_all_ipv4_addresses’
,很明显,您的主机事实既不包含您正在搜索的 ansible_all_ipv4_addresses,也不包含语法解析器让您措手不及:)
我们来试试这个:
{% for minion in groups['web'] %}
{{ hostvars[minion]['ansible_all_ipv4_addresses'][0] }} {{ hostvars[minion]['ansible_hostname'] }}
{% endfor %}
假设我们像这样布置库存
[web]
192.168.111.222 hostnameA
192.168.111.211 hostnameB
希望它能解决你的问题。干杯!