如何在模板中使用Ansible库存变量

时间:2016-05-18 15:09:36

标签: templates variables ansible

甚至可以在为其他组运行游戏时引用组变量吗?

我有一个类似的具体案例:

的/ etc / ansible /主机

[group1]
server1.test.org

[group2]
server2.test.com

[group2:vars]
foo=bar

为group1运行游戏

- name: test variables...
  hosts: group1
  gather_facts: no
  tasks:
       - debug: msg="foo={{ groups[group2].foo }}" 

它不起作用,我尝试了其他语法变体但没有成功。

1 个答案:

答案 0 :(得分:1)

当库存初始化时,这些组实际上没有为它们定义变量。主机获得为组变量定义的内容的副本。所以要做你想做的事,你需要从主机上读取。试试这个:

- name: test variables...
  hosts: group1
  gather_facts: no
  tasks:
  - debug: msg="foo={{ hostvars[groups['group2'][0]].foo }}"