Ansible 如何从清单文件访问另一个节点的主机?

Ansible 如何从清单文件访问另一个节点的主机?,ansible,Ansible,我有一个ansible清单文件,其中包含“nfsserver”和“clusternode”IP。我正在为“nfsserver”运行角色,需要在“nfsserver”角色中访问“clusternode”ip。我可以使用什么命令 我尝试了{{hostvars[“clusternode”]},但没有任何帮助。已尝试{{hostvars.clusternode},{hostvars[“clusternode”][“ipv4”][“address”]}和{hostvars.clusternode.ipv4

我有一个ansible清单文件,其中包含“nfsserver”和“clusternode”IP。我正在为“nfsserver”运行角色,需要在“nfsserver”角色中访问“clusternode”ip。我可以使用什么命令

我尝试了
{{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