在 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
......
我在清单文件中的不同变量组中使用相同的变量名称。
例如:
###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
......