【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基礎篇
- ansible/ansible
- Django+Ansible構建任務中心思路Django
- Ansible與Ansible部署
- ansible
- ansible批量管理服務 上
- Ansible6--------ansible中的角色使用
- ansible高階應用ansible-vault
- 【Ansible】ansible容器學習環境搭建
- ansible register
- Ansible教程
- ansible template
- Ansible Playbook
- Linux架構31 ansible roles角色, ansible galaxyLinux架構
- 用 Ansible 部署無服務應用!
- ansible部署配置
- ansible jenkins warJenkins
- Ansible——模組
- ansible模組
- Could not find or access '/etc/ansible/bin/cfssljson /etc/ansible/bin/cfsslJSON
- Ansible awx 快速上手
- 使用Ansible管理WindowsWindows
- Ansible 學習指北
- yum安裝ansible
- ansible 修改密碼密碼
- RHCE(ansible語句)
- ansible 命令列模命令列
- ansible-role角色
- 初窺Ansible playbook
- Ansible簡明教程
- 『Ansible 上手指南』
- ansible常用模組
- ansible批次部署apacheApache
- Ansible vs. TerraformORM
- ansible中的hostvars
- Ansible 快速入門
- ansible:playbook詳解
- ansible galaxy網址