在playbook和模板中访问组with_items

时间:2016-04-17 22:34:08

标签: ansible

groups.myNodes似乎返回了一个IP地址数组。我需要复杂的对象以及任何已定义的主机变量。此外,我需要我的模板来访问item主机而不是ansible主机。

item.someHostVariable失败,因为该项没有这样的变量,尽管实际上确实如此。

- hosts: target
  tasks: 
    - name: foo
      template: src=foo.txt.template dest={{item.someHostVariable}}.txt
      with_items: ('{{groups.myNodes}}')

P.S。 Ansible需要括号,双句柄栏和组引用上的引号。令解决问题的麻烦在于使用变量需要很多帮助。

1 个答案:

答案 0 :(得分:0)

组列表仅包含该组的主机名,因此在这种情况下item只是inventory_hostname-要获得其变量,您需要执行{{ hostvars[item].someHostVariable }}

另外:假设您正在使用Ansible 2.x,您只需要引用with_items:值以避免裸vars弃用警告(parens是多余的)。