用户定义的Ansible库存变量调用

时间:2018-12-11 18:07:54

标签: ansible ansible-2.x ansible-inventory ansible-facts

你好,我的库存是这样的

host1:
  machine1 
host2:
  machine1 var=x
  machine2 var=y

我的剧本是这样的,无法正常工作

---
- hosts: host2
  name: gather facts from host2
  tasks: []
- hosts: host1
  tasks:
    - name: Run command
      command: echo"{{ hostvars['host2']['var'] }}"


   #Also, I tried this "{{ hostvars.host2.var }}"

我需要在第二局中传递x和y,Ansible提供未定义的变量。我该怎么办?

1 个答案:

答案 0 :(得分:2)

具有讽刺意味的是,我们有这个确切的same question yesterday

这是因为host1不是主机,它是一个,因此不在 host 变量中。如果您只要求{{ var }},则该任务在x上进行评估,而在machine1上进行y评估时,其值为machine2。您当然可以在machine1上通过var索取machine2的{​​{1}}的值,就像您尝试过的那样