Ich möchte die Ausführung der verbleibenden Aufgabe abbrechen, wenn eine bestimmte Bedingung fehlgeschlagen ist. und korrekte Fehlermeldung anzeigen.Abbruch der Ausführung der verbleibenden Aufgabe, wenn eine bestimmte Bedingung fehlgeschlagen ist
Anstatt die verbleibende Aufgabe zu überspringen, möchte ich eine Fehlermeldung anzeigen und die Ausführung von Ansible Playbook stoppen.
Lets sagen, dass ich unter Befehl leite
$ ansible-playbook playbook.yml -e "param1=value1 param2=value"
My Playbook sieht wie folgt aus: -
playbook.yml: -
---
- hosts: local
user: roop
gather_facts: no
vars: {param1: "", param2: ""}
tasks:
#check whether param1 defined
- name: 'Check for valid param1'
shell: echo {{ param1 }}
register: isValidParam1
when: param1 !=""
#check if param1 is null or invalid
- name: 'check if param1 is null or invalid'
debug: msg="Please enter correct param1"
when: param1 == ""
#check whether param2 defined
- name: 'Check for valid param2'
shell: echo {{ param2 }}
register: isValidParam2
when: param2 != ""
#check if param2 is null or invalid
- name: 'check if param2 is null or invalid'
debug: msg="Please enter correct param2"
when: param2 == ""
#check params is valid and defined
- name: 'Check for valid params'
shell: echo "param1={{ param1 }} param2={{ param2 }}
register: validParams
when: isValidParam1 is defined and isValidParam2 is defined
#check if params are invalid then abort below all tasks.
- name: 'check if validParams is null or invalid'
debug: msg="Please enter correct Params"
when: validParams is not defined
# based on validParams, and different value of param1 more than
10 task executing.
Wie ich in meinem letzten erwähnt haben Aufgabenkommentar Ich führe mehr als 10 Aufgaben basierend auf validParams
und param1
unterschiedlichen Wert durch. Was ich hier brauche ist wenn validParams
nicht definiert ist dann alle Ausführung abbrechen und Fehlermeldungen anzeigen.
Gibt es einen effizienten Weg, dies zu tun. Bitte schlage mich vor.
Ja. Ich habe diese Lösung gefunden. Vielen Dank – Roopendra
Ich denke nicht, dass dies eine Lösung sein könnte, da es die Aufgabe als fehlgeschlagen markiert, während das, was wir wirklich wollen, nur überspringen. –
@EddieC. Die Frage speziell erwähnt: "... Ich möchte Fehlermeldung anzeigen und Ausführung von Ansible Playbook beenden." – raarts