ゆるい感じのプログラムを書きたい。

プログラムの敷居を下げて、多くの人が開発出来るように色々書いていきます!

【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 }}



参考サイト