2015-06-11 19 views
15

Ho creato un playbook Ansible che crea un'istanza cloud e quindi installa alcuni programmi sull'istanza. Voglio eseguire questo libro di gioco più volte (senza usare uno script di bash). È possibile utilizzare un ciclo per eseguire il loop su questi due task insieme (I.E un ciclo per due attività?). Tutto quello che sono stato in grado di trovare finora è un ciclo per ogni singola attivitàUn ciclo su più attività Ansible

+0

È un peccato che non si possa usare 'with_items' con [blocchi] (http://docs.ansible.com/ansible/latest/playbooks_blocks.html), che sembra come se fosse un modo idiomatico per fare questo. –

risposta

17

No, al momento non è possibile. with_items utilizzato per lavorare con l'istruzione include nelle versioni precedenti di Ansible, ma purtroppo è stato eliminato.

Anche se sarà portato indietro nel Ansible 2.0, vedere scorrere 14/15 di What's New in v2 - AnsibleFest London 2015

enter image description here

Si potrebbe provare a lavorare con il v2 branch from github, la funzione dovrebbe essere disponibile in là.

Quello che si può fare con 1.9.1 è spostare le attività in un ruolo e fare riferimento a questo ruolo più volte nel proprio playbook.

18

Un aggiornamento:

In 2.0 è in grado di utilizzare with_ loop e attività include (ma non playbook include), questo aggiunge la possibilità di un loop all'interno di serie di compiti in un solo colpo. Ci sono un paio di cose che devi tenere a mente, un'attività inclusa che ha il proprio ciclo with_ sovrascrive il valore della variabile oggetto speciale. Quindi, se volete accesso sia l'inclusione della voce e la voce della attività corrente si dovrebbe usare set_fact per creare un alias per quello esterno .:

- include: test.yml 
    with_items: 
    - 1 
    - 2 
    - 3 

in test.yml:

- set_fact: outer_loop="{{item}}" 
- debug: msg="outer item={{outer_loop}} inner item={{item}}" 
    with_items: 
    - a 
    - b 
    - c 

Fonte: Ansible Docs

+5

Questo è stato migliorato in 2.1, con una funzione per specificare un nome di variabile diverso per il ciclo esterno - si veda [sezione controllo loop] (http://docs.ansible.com/ansible/playbooks_loops.html#loop-control) di Documenti ansiosi. Ci sono miglioramenti correlati in 2.2 nella stessa sezione. – RichVel

Problemi correlati