访问属于另一个组的角色的模板文件中的组变量

时间:2017-05-02 19:39:02

标签: ansible ansible-inventory

库存文件:

[1]
IP

[2]
IP

[1:vars]
foo=test

如何访问将在组[2]上执行的角色中的变量foo

2 个答案:

答案 0 :(得分:8)

首先,您无法使用单个数字命名主机组,因此请修复清单文件:

[group1]
IP1

[group2]
IP2

[group1:vars]
foo=test

然后,当针对group2运行时,要访问为group1定义的变量,请使用以下构造:

- debug:
    var: hostvars[groups['group1'][0]]['foo']

一般来说,我会尽量避免这样的引用。

答案 1 :(得分:1)

变量来自哪里(库存,剧本,额外内容)并不重要,您可以通过名称访问它,例如:

- debug:
    msg: "{{ foo }}"

如果在多个地方定义了具有相同名称的变量,则优先级较高的变量会获胜(参见docs)。