【Playbook概要】変数について 4章:タスクの実行結果を制御
4.タスクの実行結果を制御する
shellで実行したコマンド
の戻り値が0
でない場合は失敗以降の処理は実行されなくなる。が、
戻り値が0
以外でも正常終了として次の処理を実行したい場合
ignore_errors
failed_when
要素を利用する
4.1.実行失敗とみなされた場合でも無視して次のタスクに進む「ignore_errors」
ignore_errors
を指定したタスクは実行失敗した場合でも次のタスクを実行できる。
- 記載例
tasks: - name:0以外を返すシェルの実行 shell: /home/hoge/hoge.sh ignore_errors: true
4.2.任意の条件を使ってタスクの失敗判定を行う「failed_when」
failed_when
は任意の条件を使ってタスクの失敗判定を行いたい場合
実行したシェルの戻り値が2以上なら失敗
の条件は以下のように記載
- 記載例
tasks: - name: 2以上ならエラーとするタスク shell: /home/hoge/hoge.sh register: result failed_when: result.rc >= 2
register
:実行結果を変数に保存する機能、
register
で指定した値が変数名になり実行結果
が保存される。
実行結果はマッピングで値が保存され、実行結果はrc
というキーに保存
以下のように条件式として利用できる。
- 記載例
<省略> register: result failed_when: result.rc >= 2
注意!
モジュールの実行結果はモジュールごとに異なる
例: shellモジュールの場合
stdout
:標準出力
stderr
:エラー出力
上記のキーで取得可能
モジュールの実行結果を確認したい場合
debug
モジュールを利用
以下のようにモジュール結果を確認する方法として利用できる。
- 記載例
tasks: - shell: /home/hoge/hoge.sh register: result - debug: msg={{ result }}
参考サイト
Ansibleを効果的に使うPlaybookの基本的な書き方
Ansibleを効果的に使うのに欠かせないPlaybookの基本的な書き方Ansible_Playbook基本
Ansible Playbook の基本 | when / assert の条件指定 記法まとめ - QiitaPlaybook実行後の戻り値
【公式】AnsibleのPlaybook実行後の戻り値について