2015-10-29 7 views

Odpowiedz

19

teraz obsługiwany od Ansible 2.3.0:

- name: myrole 
     with_items: 
     - "aone" 
     - "atwo" 
     include_role: 
     name: myrole 
     vars: 
     thing: "{{ item }}" 
+0

@tomasbedrich możesz to sprawdzić? To nie działa dla mnie. –

+1

Pamiętaj, że jeśli używasz pętli w "myrole", musisz dodać 'loop_control: loop_var: foo', aby uniknąć kolizji z wewnętrznymi pętlami. –

9

Obecnie jest no way to loop over a role Obecnie, jak wspomniano w tej dyskusji Grup dyskusyjnych Google, można przekazać listę lub dyktować rolę, a następnie wewnętrznie ją przepuścić.

Zamiast więc można zrobić coś takiego:

# loop_role/tasks/main.yml 

- name: debug item 
    debug: var="{{ item }}" 
    with_items: my_array 

a następnie używać go tak:

- hosts: all 
    vars: 
    my_array: 
     - foo 
     - bar 
     - baz 
    roles: 
    - { role: loop_role, my_array: "{{ my_array }}" }