在 Ansible 清单中的单独组变量中使用相同的变量名称

Using same variable name in separate group variable in Ansible inventory

我在清单文件中的不同变量组中使用相同的变量名称。

例如:

###hosts file####
[GROUP1]
var1  127.0.0.1
var2  127.0.0.1
[GROUP2]
var1  127.1.0.1
var2  127.1.0.1

我想知道在 GROUP2 的 var1 上应用我的剧本。我该怎么做 ? 例如:

- hosts: GROUP2.var1
  become: root
  gather_facts: no
  remote_user: user

如果你想运行第二组第一个主机上的剧本你可以使用:

- hosts: {{groups.GROUP2[0]}}
  become: root
  gather_facts: no
  remote_user: user

只有一件事是 var1 也是主机或为该主机定义的变量?上面的 {{groups.group2[0]}} 将引用主机不可变。如果您想在任何任务中使用该变量,请使用 {{ hostvars[groups['GROUP2'][0]].var1 }}.

同样在主机文件中定义变量的正确方法和主机将首先是主机,然后是变量。

[GROUP1]
127.0.0.1 var1=something
127.0.0.1 var2=something2
......