In Ansible werden Variablen dynamisch aus dem Registerausgang abgerufen. Die erste Schleife sammelt die Werte aus dem registrierten Ausgabeergebnis und sobald die When-Bedingung erfüllt ist, sollte die nächste Schleife die Ausführung starten. So verwenden Sie zwei Schleifen in einer When-Bedingung in Ansible
- name: stop the http service
command: sh http.sh stop {{item}}
args:
chdir: /opt/http/
loop: “{{http.stdout_lines}}”
when: “item.stdout != 0"
loop: “{{wordcount.results}}”
das ist der Code, aber ich kann nicht zwei Schleifen kontinuierlich verwenden, wenn eine Schleife abgeschlossen ist, sollte die nächste Schleife ausgeführt werden
Antwort1
Tut mir leid, aber es wird nicht so funktionieren, wie Sie es möchten. Sie können nur loop
einmal pro Aufgabe definieren; die zweite Definition wird ignoriert. Möglicherweise müssen Sie dies in mehrere Aufgaben aufteilen. Ich kann jedoch keine Lösung vorschlagen, da aus Ihrem Beispiel nicht ganz klar hervorgeht, was Sie erreichen möchten. Mehr Kontext könnte hilfreich sein.