我正在创建角色,并且正在两台计算机上运行此剧本,并且有一个模板,我正在使用此变量
--cluster.peers {{ cluster_peers_addr }}
当我运行剧本时,主机A的配置应在此处获取主机B的IP地址,而主机B则应获取主机A的IP地址。
如果这样的情况我可以做
{% if inventory_hostname == "hosta" %}
--cluster.peers 1.1.1.1
else
--cluster.peers 2.2.2.2
{% endif %}
但是我不喜欢这种解决方案,请提出更好的方法
答案 0 :(得分:1)
如果hostA和hostB在一个组中,则可以执行类似的操作
(groups["my-group"] | diff(inventory_hostname))[0].ansible_default_ipv4.address
当组中有两个以上的主机时,这将是错误的,但是您可以循环访问,也可以做其他聪明的事情。 YMMV。