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需要括号,双句柄栏和组引用上的引号。令解决问题的麻烦在于使用变量需要很多帮助。
答案 0 :(得分:0)
组列表仅包含该组的主机名,因此在这种情况下item
只是inventory_hostname-要获得其变量,您需要执行{{ hostvars[item].someHostVariable }}
。
另外:假设您正在使用Ansible 2.x,您只需要引用with_items:
值以避免裸vars弃用警告(parens是多余的)。