【Ansible Tower/AWX】ワークフローテンプレートの挙動について


この記事はプロモーションを含みます。

Ansible AWX

ホーム > Ansible Tower・AWX リファレンス

ワークフローテンプレートの設定と実際にどのように実行されるかをまとめてみました。

ワークフローテンプレートの設定項目について

まず、ワークフローテンプレートの設定項目、主にワークフロービジュアライザーで設定出来る項目について説明します。

ワークフローに組み込めるテンプレート

ワークフローには、通常の「ジョブテンプレート」と「ワークフローテンプレート」の2つを組み込むことが可能です。
ワークフローテンプレートを組み込むことで、ワークフローテンプレートからワークフローテンプレートを実行することなどが可能になっています。
実行結果は、いずれも「正常終了」か「異常終了」のどちらかになります。

実行タイミング

ワークフローには、複数のテンプレートを組み込むことが可能で、1つ前のテンプレートの実行結果により、後のテンプレートを実行するか、実行しないかを制御することが可能で、以下の3パターンを使用できます。

・常時:前のテンプレートの実行結果が正常終了、異常終了のどちらの場合でも処理を実行します。
・成功時:前のテンプレートの実行結果が正常終了の場合のみ、処理を実行します。
・障害発生時:前のテンプレートの実行結果が異常終了の場合のみ、処理を実行します。

下の画像がワークフロービジュアライザーの画面で、
線の色は、青が常時緑が成功時赤が障害発生時となっています。

収束(コンバージェンス)

1つ前のテンプレートの実行結果が全て成功、または一部成功のどちらの場合に、後のテンプレートを実行するかを設定できます。

・任意:1つ前のテンプレートの1つが正常終了の場合に、処理を実行します。
・すべて:1つ前のテンプレートの全てが正常終了した場合のみ、処理を実行します。

ワークフローテンプレートの組み合わせと挙動について

ここでは、様々な組み合わせと実行時にどのように動作するか、また、最終的な実行結果はどうなるかを記載しています。
必ず正常終了となるテンプレートと必ず異常終了となるテンプレートを使用してテストします。

パターン1

設定

ジョブ実行時に、「正常終了」と「異常終了」の2つのテンプレートが実行され、いずれも「成功時」のみ後続処理を行うようにしています。
また、最後のテンプレートの収束条件は「任意」に設定しています。

動作

「B_異常終了」は異常終了となっており、後続処理の実行条件は「成功時」となっていますが、収束条件が「任意」なので、一番右の「A_正常終了」は実行されています。

結果

以下のように、ワークフローテンプレート自体は失敗として終了します。

ステータス(ワークフローテンプレートの実行結果):失敗
説明:エラーの処理パスが見つかりません。ワークフローを失敗としてマークしました

おわりに

ワークフローテンプレートはGUIでジョブの組み合わせを変更できますが、実行時にどのように実行されるかイメージが湧きにくい場合もあるかもしれません。
そのような場合は、こちらを参考にして、最適な組み合わせを見つけてもらえれば幸いです。
まだパターンが少ないので順次追加していきたいと思います。

コメント

タイトルとURLをコピーしました