検索

第22章 Automation controller のワークフロー

download PDF

ワークフローを使用すると、インベントリー、Playbook、またはパーミッションを共有する場合と共有しない場合がある、一連の異なるジョブテンプレート (またはワークフローテンプレート) を設定できます。

ワークフローには、ジョブテンプレートと同様に、admin パーミッションと execute パーミッションがあります。ワークフローは、1 つの単位としてリリースプロセスに含まれる全ジョブセットをトラッキングするタスクを実行します。

ジョブまたはワークフローテンプレートは、ノードと呼ばれるグラフのような構造を使用して相互にリンクされます。これらのノードは、ジョブ、プロジェクト同期、またはインベントリー同期です。テンプレートは、異なるワークフローの一部にすることも、同じワークフロー内で複数回使用することもできます。ワークフローを起動すると、グラフ構造のコピーがワークフロージョブに保存されます。

次の例は、3 つすべてを含むワークフローと、ワークフロージョブテンプレートを示しています。

ワークフロー内のノード

ワークフローが実行されると、ノード内のリンクされたテンプレートからジョブが生成されます。プロンプトフィールド (job_type、job_tags、skip_tags、limit) を持つジョブテンプレートにリンクしているノードには、それらのフィールドを含めることができ、起動時にプロンプトは表示されません。認証情報またはインベントリーの入力を求めるジョブテンプレート (デフォルトなし) は、ワークフローに含めることができません。

22.1. ワークフローのシナリオおよび留意事項

ワークフローを構築するときは、次の点を考慮してください。

  • ルートノードは、デフォルトで ALWAYS に設定されており、編集できません。
Node always
  • ノードは複数の親を持つことができ、子は Success、Failure、または Always のいずれかの状態にリンクできます。Always の場合、状態は Success でも Failure でもありません。状態は、ワークフロージョブテンプレートレベルではなく、ノードレベルで適用されます。ワークフロージョブは、キャンセルされるかエラーが発生しない限り、Success としてマークされます。
Sibling nodes all edge types
  • 以下の例のように、ワークフロー内のジョブまたはワークフローテンプレートを削除した場合に、以前に削除済みのジョブやワークフローに連携されていたノードが自動的にアップストリームに接続され、エッジタイプが保持されます。
Node delete scenario
  • 複数のジョブが 1 つに収束する収束ワークフローを実現できます。このシナリオでは、以下の例に示すように、次のジョブが実行される前に、いずれかのジョブまたはすべてのジョブを完了する必要があります。

    Node convergence
    • この例では、Automation controller は最初の 2 つのジョブテンプレートを並行して実行します。両方が指定どおりに終了し、成功すると、3 番目のダウンストリーム (コンバージェンスノード) がトリガーされます。
  • インベントリーと Survey のプロンプトは、ワークフロージョブテンプレートに含まれるワークフローノードに適用されます。
  • API から起動する場合、get コマンドを実行すると、警告のリストが表示され、欠落しているコンポーネントが強調表示されます。次の図は、ワークフロージョブテンプレートの基本的なワークフローを示しています。
ワークフロー図
  • 複数のワークフローの同時起動や、起動のタイミングのスケジュールを設定できます。ジョブテンプレートと同様に、ジョブの完了時などの通知をワークフローに設定できます。
注記

ジョブスライスは、ジョブの実行を水平方向にスケーリングすることを目的としています。

ジョブテンプレートでジョブスライスを有効にすると、動作するインベントリーが起動時に設定されたスライスの数に分割されます。次に、スライスごとにジョブを開始します。

詳細は、ジョブスライス セクションを参照してください。

  • 再帰的なワークフローを構築することができますが、automation controller がエラーを検出した場合には、ネスト化されたワークフローが実行しようとしたタイミングでワークフローは停止します。
  • サブワークフローのジョブで収集されたアーティファクトは、ダウンストリームのノードには渡されません。
  • インベントリーは、ワークレベルとして設定することもインベントリーの起動プロンプトとして設定することも可能です。
  • 起動時に、ask_inventory_on_launch=true が指定されているワークフロー内のジョブテンプレートはすべて、ワークフローレベルのインベントリーを使用します。
  • インベントリーを求めないジョブテンプレートでは、ワークフローインベントリーを無視し、独自のインベントリーに対して実行されます。
  • ワークフローがインベントリーを求める場合には、スケジュールおよび他のワークフローノードでそのインベントリーを提供することができます。
  • ワークフロー収束シナリオでは、set_stats データは、定義なしの状態でマージされるため、一意のキーを設定する必要があります。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.