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
risposta
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
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.
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 ciclowith_
sovrascrive il valore della variabile oggetto speciale. Quindi, se volete accesso sia l'inclusione della voce e la voce della attività corrente si dovrebbe usareset_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
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
- 1. Admob su più attività?
- 2. Ansible: come eseguire iterazioni su un ruolo con un array?
- 3. Ansible: installare più pacchetti Python su una singola sessione
- 4. creazione di attività utilizzando un ciclo [gulp]
- 5. Come scrivere un'attività Ansible utilizzando with_dict in un ciclo (with_items)
- 6. Ciclo di vita delle attività - onCreate chiamato su ogni riorientamento
- 7. Ansible: host in più gruppi
- 8. Imposta utente_remoto per un insieme di attività nella cartella di gioco Ansible senza ripeterlo per attività
- 9. ansible: come passare più comandi
- 10. creare più directory usando ansible
- 11. Android: menu di visualizzazione su più attività
- 12. Esegui attività in più thread su node.js
- 13. Come può un ciclo singolo iterare su più array?
- 14. Assegna priorità alle attività nodejs in un ciclo di eventi
- 15. Applicazione Android basata su singola attività, più frammenti
- 16. Ansible: esegui attività (o gestore) in caso di qualsiasi attività non riuscita
- 17. Ansible: riavvio rete su Ubuntu
- 18. Riutilizzare Google Map v2 su più frammenti in singola attività
- 19. Ansible, come unire più array in un singolo file?
- 20. Modifica di un ciclo foreach su un ciclo Parallel.ForEach
- 21. Filtro di più tag nell'inventario dinamico Ansible
- 22. Gulp.js: attività basata sul ciclo forEach
- 23. Android: singola attività, più viste
- 24. ansible: include il ruolo in un ruolo?
- 25. Aggiungere più chiavi SSH utilizzando ansible
- 26. come eseguire più riproduzioni ansible in parallelo?
- 27. Come posso eseguire solo attività ansibili con più tag?
- 28. Più attività di Antrun in Maven
- 29. vincolante un servizio a più attività
- 30. ansible - default/Tag espliciti
È 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. –