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

Accessing group variable in template file of role belonging to another group

库存文件:

[1]
IP

[2]
IP

[1:vars]
foo=test

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

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

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

如果在多个地方定义了同名变量,则优先级高者优先(参见docs)。

首先,您不能用单个数字命名主机组,因此修复清单文件:

[group1]
IP1

[group2]
IP2

[group1:vars]
foo=test

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

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

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