【Ansible】ansible任務失敗控制
任務失敗控制
Ansible 通常預設會確保檢測模組和命令的返回碼並且會快速失敗 – 專注於一個錯誤除非你另作打算.
有時一條命令會返回 0 但那不是報錯.有時命令不會總是報告它 ‘改變’ 了遠端系統.本章節描述了 如何將 Ansible 處理輸出結果和錯誤處理的預設行為改變成你想要的.
忽略錯誤的命令
通常情況下, 當出現失敗時 Ansible 會停止在宿主機上執行.有時候,你會想要繼續執行下去.為此 你需要像這樣編寫任務:
- name: cat no exist file
command: cat /root/noexist
ignore_errors: yes
- name: cat file info
shell: cat /root/fileinfo
控制對失敗的定義
假設一條命令的錯誤碼毫無意義只有它的輸出結果能告訴你什麼出了問題,比如說字串 “FAILED” 出 現在輸出結果中.
在 Ansible 1.4及之後的版本中提供瞭如下的方式來指定這樣的特殊行為:
- name: this command prints FAILED when it fails
command: /usr/bin/ls -x -y -z
register: command_result
failed_when: "`FAILED` in command_result.stderr"
在 Ansible 1.4 之前的版本能通過如下方式完成:
- name: this command prints FAILED when it fails
command: /usr/bin/ls -x -y -z
register: command_result
ignore_errors: True
- name: fail the play if the previous command did not succeed
fail: msg="the command failed"
when: "`FAILED` in command_result.stderr"
覆寫更改結果
當一個 shell或命令或其他模組執行時,它們往往都會在它們認為其影響機器狀態時報告 “changed” 狀態
有時你可以通過返回碼或是輸出結果來知道它們其實並沒有做出任何更改.你希望覆寫結果的
“changed” 狀態使它不會出現在輸出的報告或不會觸發其他處理程式:
tasks:
- shell: /usr/bin/ps -ef | grep zabbix
register: zabbix_result
changed_when: "zabbix_result.rc != 2"
文獻參考連結:
參考連結: http://www.ansible.com.cn/docs/playbooks_error_handling.html
本文《 ansible 任務失敗控制 》首發於 樂維論壇,歡迎來訪。
相關文章
- 任務中心之Ansible基礎篇
- Django+Ansible構建任務中心思路Django
- ansible批量管理服務 上
- oracle schedule 任務失敗處理Oracle
- ansible
- 【Ansible】ansible容器學習環境搭建
- ansible高階應用ansible-vault
- Ansible學習筆記-Ansible安裝筆記
- Ansible Playbook
- ansible register
- Ansible——模組
- ansible模組
- Ansible教程
- ansible template
- 用 Ansible 部署無服務應用!
- Ansible 起步指南
- ansible變數變數
- ansible簡介
- Ansible進階
- ansible常用模組
- Linux架構31 ansible roles角色, ansible galaxyLinux架構
- 使用 Ansible 部署無服務(serverless)應用Server
- Could not find or access '/etc/ansible/bin/cfssljson /etc/ansible/bin/cfsslJSON
- Ansible簡明教程
- ansible自定義模組
- ansible:playbook詳解
- Ansible 快速入門
- yum安裝ansible
- ansible基礎-模組
- Ansible安裝mysqlMySql
- ansible 命令列模命令列
- 『Ansible 上手指南』
- 使用Ansible管理WindowsWindows
- Ansible 學習指北
- ansible之template模組
- ansible安裝zookeeper
- ansible的優化優化
- ansible模組學習