从特定组的ansible库存中获取变量

时间:2015-11-19 17:10:51

标签: ansible

我正在尝试从特定组中获取特定变量,但它似乎导致我得到奇怪的结果。

主机文件示例:

[server_machine]
zeus     account=app1

[agent_machine]

machine1   account=agent port_a=1000  port_b=1001 
machine2   account=agent port_a=1200  port_b=1201 
machine3   account=agent port_a=1300  port_b=1301 

我要做的是使用server_machine组中的参数在agent_machines组上运行脚本。

这样,脚本将在server_machine上使用所有端口组合运行3次。

所以基本上我需要看起来像这样的剧本:

- hosts: server_machine

- tasks:
    - command: test.py --port_1 {{item}}  --port_2 {{item}}
      with_items:{{group.agent_machine.port_a, group.agent_machine.port_b }}

然而,我无法使其发挥作用。

2 个答案:

答案 0 :(得分:0)

试试这个:

- command: test.py --port_1 {{ hostvars[item]["port_a"] }} --port_2 {{ hostvars[item]["port_b"] }}
  with_items: groups["agent_machine"]

答案 1 :(得分:0)

对于'delegate_to'来说,这是一个很好的用例:

  - hosts: agent_machine
    tasks:
      - command: test.py --port_1 {{port_a}}  --port_2 {{port_b}}
        delegate_to: zeus