Ansible 如何从清单文件访问另一个节点的主机?
我有一个ansible清单文件,其中包含“nfsserver”和“clusternode”IP。我正在为“nfsserver”运行角色,需要在“nfsserver”角色中访问“clusternode”ip。我可以使用什么命令 我尝试了Ansible 如何从清单文件访问另一个节点的主机?,ansible,Ansible,我有一个ansible清单文件,其中包含“nfsserver”和“clusternode”IP。我正在为“nfsserver”运行角色,需要在“nfsserver”角色中访问“clusternode”ip。我可以使用什么命令 我尝试了{{hostvars[“clusternode”]},但没有任何帮助。已尝试{{hostvars.clusternode},{hostvars[“clusternode”][“ipv4”][“address”]}和{hostvars.clusternode.ipv4
{{hostvars[“clusternode”]}
,但没有任何帮助。已尝试{{hostvars.clusternode}
,{hostvars[“clusternode”][“ipv4”][“address”]}
和{hostvars.clusternode.ipv4.address}
。没有任何帮助
主机库存:
[clusternode]
192.168.125.21
[nfsserver]
192.168.125.22
预期:192.168.125.21
实际:错误是:\“hostvars['clusternode']\”未定义
我试过{{hostvars[“clusternode”]}},但没用
没有名为“clusternode”的主机。有一个名为“clusternode”的组,您可以从组
字典中获取组成员列表,如下所示:
---
- debug:
msg: "{{ groups.clusternode }}"
这将生成“clusternode”组中的主机列表(给定您的资源清册,这将是ip地址列表)。如果“clusternode”组中有多个主机,可以使用循环
对它们进行迭代。如果只有一个节点,则可以使用groups.clusternode.0
获取地址
已尝试{{hostvars.clusternode} 这与您的第一次尝试相同:
variable.key
和variable[“key”]
在Jinja表达式中都执行相同的操作
{hostvars[“clusternode”][“ipv4”][“address”]}
和{{hostvars.clusternode.ipv4.address}
由于
hostvars[“clusternode”]
不存在,您可能会期望它们失败。您的清单名为host\u inventory.yml
,但这不是YAML文件。那会让人困惑的。对不起,我已经更正了。请帮助我获取nfsserver角色中的clusternode ip