Ansible Documentation
Ignoring Failed Commands機能
タスクで発生したエラーを無視するコマンド
パラメータ | 選択肢/ Default | 説明 |
---|---|---|
ignore_errors | ・no ・yes | yes を指定するとタスク内で発生したエラーを無視する |
例
■ play--- - hosts: all gather_facts: no tasks: - name: 意図的にエラーを発生させる shell: /usr/false ignore_errors: yes register: result - name: 実行結果を表示する debug: var: result■ 実行結果
/usr/false コマンドは存在しないので shell モジュールを使用したタスクでエラーが発生します。しかし ignore_errors: yes が指定されているため処理を中断せず、次のタスクに進みます。
ansibleman@ubuntu-pc:~/ansible/error handling$ ansible-playbook -i hosts.yml site.yml
PLAY [all] *********************************************************************
TASK [意図的にエラーを発生させる] ***********************************************************
fatal: [node-c0706]: FAILED! => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": true, "cmd": "/usr/false", "delta": "0:00:00.003798", "end": "2019-05-19 22:37:43.015711", "msg": "non-zero return code", "rc": 127, "start": "2019-05-19 22:37:43.011913", "stderr": "/bin/sh: /usr/false: そのようなファイルやディレクトリはありません", "stderr_lines": ["/bin/sh: /usr/false: そのようなファイルやディレクトリはありません"], "stdout": "", "stdout_lines": []}
...ignoring
TASK [実行結果を表示する] ***************************************************************
ok: [node-c0706] => {
"result": {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"cmd": "/usr/false",
"delta": "0:00:00.003798",
"end": "2019-05-19 22:37:43.015711",
"failed": true,
"msg": "non-zero return code",
"rc": 127,
"start": "2019-05-19 22:37:43.011913",
"stderr": "/bin/sh: /usr/false: そのようなファイルやディレクトリはありません",
"stderr_lines": [
"/bin/sh: /usr/false: そのようなファイルやディレクトリはありません"
],
"stdout": "",
"stdout_lines": []
}
}
PLAY RECAP *********************************************************************
node-c0706 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
ansibleman@ubuntu-pc:~/ansible/error handling$