2016-03-16 108 views
2

我瓦爾文件:Ansible嵌套循環動態組名稱

applications: 
    - name: server_1 
    deploy: True 
    branch: master 
    group: frontend 
    - name: server_2 
    deploy: True 
    branch: master 
    group: backend 

我的任務是

- name: deploy boxer 
    command: "curl http://example.com?hosts={{item.1}}" 
    with_subelements: 
    - applications 
    - "{{ groups[group] }}" # This is not working. 

inventory.yml

[frontend] 
host1.example.com 
host2.example.com 

[backend] 
host11.example.com 
host12.example.com 

我想通過應用迭代和循環通過一個組中的每個主機(一次只有一個主機)通過它來捲曲命令。

我希望在最後。

curl http://example.com?hosts=host1.example.com 
curl http://example.com?hosts=host2.example.com 
curl http://example.com?hosts=host11.example.com 
curl http://example.com?hosts=host12.example.com 

回答

0

您的意思是使用with_nested

with_nested: 
    - "{{ applications }}" 
    - "{{ groups }}" 
when: item.0.group == item.1 
+0

我剛開始這個錯誤。 失敗! => {「failed」:true,「msg」:「錯誤!條件檢查'item.0.group == item.1'失敗。錯誤是:ERROR!error評估條件時(item.0.group = = item.1):錯誤!'None'沒有任何屬性'group'\ n \ n – advishnuprasad

+0

噢,是的,'with_nested'就是它。 – udondan

+0

item.1沒有給我主機名,我想遍歷所有主機名。 – advishnuprasad