Ich habe ein Ansible-Playbook erstellt, das eine Cloud-Instanz erstellt und anschließend einige Programme auf der Instanz installiert. Ich möchte dieses Playbook mehrmals ausführen (ohne ein Bash-Skript zu verwenden). Ist es möglich, eine Schleife zu verwenden, um diese beiden Aufgaben zusammen zu durchlaufen (I. E. Eine Schleife für zwei Aufgaben?). Alles, was ich bisher finden konnte, ist eine Schleife für jede einzelne AufgabeEine Schleife über mehrere Ansible-Aufgaben
Antwort
Nein, das ist derzeit nicht möglich. with_items
verwendet, um mit der include
Anweisung in früheren Versionen von Ansible zu arbeiten, wurde aber leider gelöscht.
Obwohl es wird wieder in ansible 2.0 gebracht werden, siehe Folie 14/15 von What's New in v2 - AnsibleFest London 2015
Sie könnten versuchen, mit dem v2 branch from github zu arbeiten, sollte die Funktion dort zur Verfügung stehen.
Was Sie mit 1.9.1 tun können, ist Ihre Aufgaben in eine Rolle zu verschieben und diese Rolle mehrmals in Ihrem Playbook zu referenzieren.
Ein Update:
In 2.0 Sie sind in der Lage
with_
Schleifen zu verwenden und Aufgabe umfasst (aber nicht Textbuch enthält), fügt dieser die Möglichkeit, eine Schleife über den Satz von Aufgaben in einem Schuss. Es gibt ein paar Dinge, die Sie im Auge behalten müssen, eine enthaltene Aufgabe, die ihre eigeneSchleife hat, wird den Wert der speziellen Elementvariable überschreiben. Also, wenn Sie den Zugriff auf beide wollen gehören das Stück und die Sache der aktuellen Aufgabe, die Sieset_fact
verwenden sollten einen Alias zum äußeren erstellen .:- 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
Quelle: Ansible Docs
Dies wurde in 2.1 verbessert, mit einer Funktion zur Angabe eines anderen Variablennamens für die äußere Schleife - siehe [Schleifensteuerungsabschnitt] (http://docs.ansible.com/ansible/playbooks_loops.html#loop-control) von Ansible Dokumente Es gibt verwandte Verbesserungen in 2.2 in demselben Abschnitt. – RichVel
- 1. Wie kann eine einzelne for-Schleife über mehrere Arrays iterieren?
- 2. Ansible Schleife über mehrere Wörterbücher/Listen
- 3. JQuery Hinzufügen von Schleife über mehrere Seiten
- 4. C#, eine Transaktion über mehrere Datenbanken Steuerung
- 5. TinyXML-Schleife über Elemente
- 6. Schleife über mehrere Ordner aus der Liste mit glob.glob
- 7. R - Neue Variablen über mehrere Datenrahmen in einer Schleife
- 8. Schleife über alle Seiten über Rekursion
- 9. CGAL Schleife über Facetten eine Kante
- 10. Django, Schleife über alle Formularfehler
- 11. parallele Schleife über Paare
- 12. Schleife über Untergruppen
- 13. Mehrere verschachtelte Schleife
- 14. Schleife über DOMDocument
- 15. ansible Schleife über Variablen
- 16. Katze eine Datei mehrere Male ohne eine Schleife
- 17. Schleife über JSON api
- 18. über golang Schnittstelle Schleife
- 19. Mehrere Einträge über eine Sitzungsvariable in ASP.NET
- 20. Python Schleife durch mehrere Listen
- 21. For Schleife über eindeutige Werte
- 22. Thumbnail-Zugriff über For-Schleife.
- 23. Schleife über Immobilien in Ant
- 24. T-SQL-Schleife über Abfrageergebnisse
- 25. Schleife über XAML definierte Etiketten
- 26. Mehrere Bilder über Arrays hinzufügen
- 27. Schleife über dynamisch wechselnde Liste
- 28. For Schleife mehrere Elemente PHP
- 29. für Schleife über ereignisgesteuertem Code?
- 30. bereichsbasierte Schleife über einen Eingangsstrom
Es ist schade, dass man 'with_items' nicht mit [blocks] (http://docs.ansible.com/ansible/latest/playbooks_blocks.html) verwenden kann, was so aussieht, als wäre es ein idiomatischer Weg um dies zu tun. –