如果某些條件失敗,我想中止執行剩餘任務。 並顯示正確的錯誤消息。如果某些條件失敗,則中止執行剩餘任務
因此,而不是跳過剩餘的任務,我想顯示錯誤消息,並停止執行完整的劇本。
比方說,我正在下面命令
$ ansible-playbook playbook.yml -e "param1=value1 param2=value"
我的劇本是這樣的: -
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.
正如我在最後提到的任務評論。我正在執行基於validParams
和param1
不同值的超過10個任務。我需要這裏 如果validParams
未定義,則中止所有執行並顯示錯誤消息。
有沒有任何有效的方法來做到這一點。請建議我。
是的。我發現這個解決方案。非常感謝 – Roopendra
我不認爲這可能是一個解決方案,因爲它將任務標記爲失敗,而我們真正想要的只是跳過。 –
@EddieC。這個問題特別提到:「...我想顯示錯誤信息並停止執行完整的劇本。」 – raarts