'ansible_failed_result' 変数を Tower Notification に渡す

'ansible_failed_result' 変数を Tower Notification に渡す

ネイティブの Ansible と Tower の失敗変数と通知をそれぞれ使用して、ジョブの実行出力の結果を記載した電子メールを送信する方法を見つけようとしています。

そこで、次のようなことを実行するプレイブックを作成しました。

  rescue:
    - debug:
        msg: "Failure:\n\n{{ansible_failed_result | to_nice_json}}"

タワーで素晴らしい出力が得られる

ただし、Tower からの同じ出力を電子メール通知に渡して、Tower にログインしなくてもジョブの出力を電子メールで確認できるようにしたいと考えています。つまり、接続タイムアウトなのか、それとももっと深刻な問題なのかを電子メールですぐに知ることができるということです。

Tower でカスタマイズ通知を使用し、「job.job_explanation」フィールドを試してみましたが、常に空が返されます。

詳細度を上げてジョブを実行してみましたが、それでもうまくいきませんでした。

これを実行する方法について何かアイデアはありますか? 現時点では、job_explanation フィールドの使用方法が正しいかどうかさえわかりませんので、ご協力いただければ幸いです。

ありがとう

答え1

他にも同じ問題に遭遇した人がいたら、私が非常に簡単に解決した方法を紹介します。

  tasks:
    - block:
        - name: Fail Task
          fail:
            msg: 'Failed'
          when: true

      rescue:
      - name: set stats
        set_stats:
           data:
             msg_body_1: "This was a test"

その後、Tower 通知メッセージ セクションで {{ job.artifacts }} を使用して、設定した変数を返すことができます。

関連情報