我正在尝试设置Zookeeper群集,并且为了设置指向ZK节点的url,我想知道哪些是运行当前角色的主机的ip地址。
我知道从剧本中我可以通过变量传递主机,但在角色中查看这个很好。
答案 0 :(得分:1)
如果您对IP当前正在执行该角色的主机感兴趣,只需使用内置的可靠事实,例如: :
- debug:
var={{ "ansible_default_ipv4['address'] }}"
答案 1 :(得分:1)
我不认为Ansible提供了一个变量来访问正在应用角色的主机。如果您想在当前播放中获取活动主持人,请使用ansible_play_hosts
(如果您的ansible版本<2.2,则使用play_hosts
。
但是,我认为更好的解决方案是将您的zookeeper节点组合在一起。
[zookeeper_nodes]
node1
node2
node3
从那里,您可以使用groups
和hostvars
{% for host in groups['zookeeper_nodes'] %}
{{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}
{% endfor %}
有关详细信息,请参阅Ansible's docs on magic variables。