下面的代码会产生错误。
码:
{% 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 ...
谢谢!
看着错误信息
“元组对象”没有属性“ansible_all_ipv4_addresses”
,很明显,你的主机的事实不包含你正在search的内部的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
希望它能解决你的问题。 干杯!