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

时间:2016-05-13 22:38:03

标签: ansible ansible-playbook ansible-2.x

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

例如:

###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

1 个答案:

答案 0 :(得分:1)

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

- 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
......