Was soll ich tun, wenn ich die ganze Schleife in Ansible überspringen möchte?Überspringen Sie die ganze Schleife in Ansible
Richtlinien Laut,
Während
when
mitwith_items
(siehe Loops) kombiniert, ...when
Anweisung wird separat für jedes Element verarbeitet.
Dadurch, während die Textbuch, wie die
---
- hosts: all
vars:
skip_the_loop: true
tasks:
- command: echo "{{ item }}"
with_items: [1, 2, 3]
when: not skip_the_loop
Laufen bekomme ich
skipping: [localhost] => (item=1)
skipping: [localhost] => (item=2)
skipping: [localhost] => (item=3)
Während ich jedes Mal überprüft nicht eine Bedingung werden möchten.
Dann kam ich auf die Idee der Verwendung von Inline-Bedingungen
- hosts: all
vars:
skip_the_loop: true
tasks:
- command: echo "{{ item }}"
with_items: "{{ [1, 2, 3] if not skip_the_loop else [] }}"
Es scheint bis mein Problem zu lösen, aber ich habe nichts als Ausgang dann. Und ich möchte nur eine Zeile zu sagen:
skipping: Loop has been skipped
Das glaube ich nicht, dass Sie ein besseres Ergebnis bekommen können als dein zweiter. Sie könnten einfach eine Debug-Anweisung hinterher hinzufügen, wenn Sie wirklich etwas ausgedruckt haben – SztupY
@SztupY, ich habe es schon getan, aber es ist immer noch nicht das gewünschte Ergebnis, leider –
irgendein Grund, warum Sie nicht wollen, dass die Bedingung für jeden läuft Schleife? Ist es nur wegen der hässlichen Ausgabe, oder weil die bedingten Prüfungen eine Menge Zeit/Ressource benötigen? – SztupY