Ansible playbook hostvars未定义的variables

下面的代码会产生错误。

码:

{% 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 

希望它能解决你的问题。 干杯!