2016-05-18 38 views
0

甚至可以在为其他组运行播放时引用组变量?如何在模板中使用Ansible库存变量

我有一个特定的情况下,这样的:

的/ etc/ansible /主机

[group1] 
server1.test.org 

[group2] 
server2.test.com 

[group2:vars] 
foo=bar 

运行发挥了1组

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

它不工作,我已经尝试过其他语法变体没有成功。

回答

0

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

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

它的工作原理!谢谢[Petro026](http://stackoverflow.com/users/2847921/petro026) –

相关问题