概要
Ansibleのblock
のなかでrescure
ディレクティブを指定してみて動きを確認してみます。
そもそものrescue
の説明
rescue
はblock
内で定義したタスクのどれかがエラーになったときに実行する処理を記載することができるディレクティブです。
タスクが失敗したときの後処理として利用することができます。
rescue
が実行されるパターンを確認してみる
以下のplaybookを利用してrescue
を確認してみます。
shell
で./sonzaisinai
という存在しないコマンドが実行され、エラーとなるようにしています。
実行結果
./sonzaisinai
なんてものは存在しないのでエラーになり、resucue
が実行されていることがわかります。
$ ansible-playbook block_rescue.yml PLAY [localhost] ********************************************************************************************************************************************** TASK [command] ************************************************************************************************************************************************ fatal: [localhost]: FAILED! => {"changed": true, "cmd": "./sonzaisinai", "delta": "0:00:00.002727", "end": "2018-04-12 22:00:29.890869", "msg": "non-zero return code", "rc": 127, "start": "2018-04-12 22:00:29.888142", "stderr": "/bin/sh: ./sonzaisinai: No such file or directory", "stderr_lines": ["/bin/sh: ./sonzaisinai: No such file or directory"], "stdout": "", "stdout_lines": []} TASK [debug] ************************************************************************************************************************************************** ok: [localhost] => { "msg": "rescue実行" } PLAY RECAP **************************************************************************************************************************************************** localhost : ok=1 changed=0 unreachable=0 failed=1
rescue
が実行されないパターンを確認してみる
shell
でls
コマンドを実行するようにしてみます。
ls
はなんの問題もなく実行されるはずなのでエラーにはならない想定です。
実行結果
ls
がなんの滞りもなく完了し、rescue
が実行されていないことがわかります。
$ ansible-playbook block_rescue_ok.yml PLAY [localhost] ********************************************************************************************************************************************** TASK [command] ************************************************************************************************************************************************ changed: [localhost] PLAY RECAP **************************************************************************************************************************************************** localhost : ok=1 changed=1 unreachable=0 failed=0
おわりに
rescue
はべんり

Ansible実践ガイド第2版 impress top gearシリーズ
- 作者: 北山晋吾,塚本正隆,畠中幸司
- 出版社/メーカー: インプレス
- 発売日: 2018/03/01
- メディア: Kindle版
- この商品を含むブログを見る