第23章 ワークフロージョブテンプレート
ワークフロージョブテンプレートは、一連の異種リソースをリンクして、リリースプロセスに含まれていたジョブ全体を 1 つの単位として追跡します。これらのリソースには以下が含まれます。
- ジョブテンプレート
- ワークフロージョブテンプレート
- プロジェクト同期
- インベントリーソース同期
Templates リストビューには、現在使用可能なワークフローテンプレートとジョブテンプレートが表示されます。デフォルトのビューは折りたたまれており (Compact)、テンプレート名、テンプレートの種類、およびそのテンプレートを使用して実行されたジョブのステータスが表示されます。各エントリーの横にある矢印をクリックすると、展開して詳細情報を表示できます。このリストは名前のアルファベット順に並べ替えられていますが、他の条件で並べ替えたり、テンプレートのさまざまなフィールドや属性で検索したりできます。この画面から、ワークフローのジョブテンプレートを起動して ( )、編集し ( )、コピー ( ) します。
ワークフローテンプレートにのみ、ワークフローエディターにアクセスするためのショートカットとしてワークフロービジュアライザーアイコン ( ) があります。
ワークフローテンプレートは、別のワークフローテンプレートの設定要素として使用できます。ワークフローテンプレートでいくつかの設定を指定することで、Prompt on Launch を有効にできます。これらの設定は、ワークフロージョブテンプレートレベルで編集できます。これらは、個々のワークフローテンプレートレベルで割り当てられた値には影響しません。詳しい手順は、ワークフロービジュアライザー セクションを参照してください。
23.1. ワークフローテンプレートの作成
新しいワークフロージョブテンプレートを作成するには、次の手順を実行します。
ワークフローテンプレートに制限を設定する場合、Prompt on launch をオンにしないと、制限がジョブテンプレートに渡されません。実行している Playbook に制限が必須である場合、これにより Playbook が失敗する可能性があります。
手順
Templates リストビューで、Add リストから Add workflow template を選択します。
次のフィールドに適切な詳細を入力します。
注記フィールドで Prompt on launch チェックボックスがオンになっている場合、ワークフローテンプレートを起動するか、別のワークフローテンプレート内でワークフローテンプレートを使用すると、そのフィールドの値の入力を求めるプロンプトが表示されます。ほとんどのプロンプト値は、ジョブテンプレートに設定されている値をオーバーライドします。次の表に例外を示します。
フィールド オプション Prompt on Launch Name
ジョブの名前を入力します。
該当なし
Description
必要に応じて、任意の説明を入力します (オプション)。
該当なし
Organization
ログインしているユーザーが使用できる組織から、このテンプレートで使用する組織を選択します。
該当なし
Inventory
必要に応じて、ログインしたユーザーが使用できるインベントリーから、このテンプレートで使用するインベントリーを選択します。
はい
Limit
Playbook が管理または影響を与えるホストのリストをさらに制限するためのホストのパターンを指定します。複数のパターンをコロン (:) で区切ることができます。コア Ansible と同じです。
- a:b は「a または b のグループに含まれる」という意味です。
- a:b:&c は、「a または b に含まれるが、c には必ず含まれなければならない」という意味です。
- a:!b は「a にはあるが、b には絶対にない」という意味です。
詳細は、Ansible ドキュメントの Patterns: targeting hosts and groups を参照してください。
はい
選択すると、デフォルト値が指定されている場合でも、起動時に制限を選択するように求めます。
Source control branch
ワークフローのブランチを選択します。このブランチは、ブランチを要求するすべてのワークフロージョブテンプレートノードに適用されます。
はい
Labels
-
必要に応じて、このワークフロージョブテンプレートを説明するラベル (
dev
やtest
など) を指定します。ラベルを使用して、表示内のワークフロージョブテンプレートと完了したジョブをグループ化およびフィルタリングします。 - ラベルは、ワークフローテンプレートの追加時に作成されます。ラベルは、ワークフローテンプレートで提供されるプロジェクトを使用して、単一の組織に関連付けられます。組織のメンバーは、編集パーミッション (管理者ロールなど) を持っている場合、ジョブテンプレートにラベルを作成できます。
- ジョブテンプレートを保存すると、ワークフロージョブテンプレートの Details ビューにラベルが表示されます。
- ラベルはワークフローテンプレートにのみ適用され、ワークフローで使用されるジョブテンプレートノードには適用されません。
- ラベルの横にある を選択して削除します。ラベルが削除されると、そのラベルはその特定のジョブまたはジョブテンプレートとの関連付けが解除されますが、ラベルを参照する他のジョブには関連付けられたままになります。
はい
選択すると、デフォルト値が指定されている場合でも、必要に応じて起動時に追加のラベルを指定するように求められます。- 既存のラベルは削除できません。 を選択すると、新たに追加されたラベルだけが削除され、既存のデフォルトラベルは削除されません。
Variables
- 追加のコマンドライン変数を Playbook に渡します。
これは、Ansible ドキュメントの Controlling how Ansible behaves: precedence rules に記載されている ansible-playbook の "-e" または "-extra-vars" コマンドラインパラメーターです。- YAML または JSON を使用してキーまたは値のペアを指定します。これらの変数には優先順位の最大値があり、他の場所で指定された他の変数をオーバーライドします。
git_branch: production release_version: 1.5
は、値の例です。はい
スケジュールで extra_vars を指定できるようにするには、ジョブテンプレートの変数に対して Prompt on launch を選択するか、ジョブテンプレートで Survey を有効にする必要があります。回答された Survey の質問は
extra_vars
になります。追加変数の詳細は、追加変数 を参照してください。Job tags
Create ドロップダウンを入力して選択し、Playbook のどの部分を実行するかを指定します。詳細と例は、Ansible ドキュメントの Tags を参照してください。
はい
Skip Tags
Create ドロップダウンを入力して選択し、スキップする Playbook の特定のタスクまたは部分を指定します。詳細と例は、Ansible ドキュメントの Tags を参照してください。
はい
必要に応じて、このテンプレートを起動するための次の Options を指定します。
ワークフロージョブテンプレートを起動するために使用する定義済みの SCM システム Web サービスと接続する機能をオンにするには、Enable Webhooks をオンにします。GitHub と GitLab がサポートされている SCM システムです。
Webhook を有効にすると、他のフィールドが表示され、以下の追加情報の入力を求められます。
- Webhook Service: Webhook からリッスンするサービスを選択します
- Webhook Credential : オプションで、Webhook サービスにステータス更新を送信するために使用する認証情報として GitHub または GitLab パーソナルアクセストークン (PAT) を指定します。詳細は、認証情報タイプ を参照して作成してください。
- Webhook URL: POST 要求を送信する Webhook サービスの URL が自動的に入力されます。
Webhook キー: Webhook サービスが automation controller に送信するペイロードに署名する際に使用するための、生成された共有シークレット。このサービスからの Webhook が Automation controller で受け入れられるように、Webhook サービスの設定で指定する必要があります。Webhook の設定の関連情報については、Webhook の使用 を参照してください。
Enable Concurrent Jobs にチェックを入れて、このワークフローの同時実行を可能にします。詳細は、Automation controller の容量決定とジョブへの影響 を参照してください。
- ワークフローテンプレートの設定が完了したら、 をクリックします。
テンプレートを保存すると、ワークフローテンプレートページが終了し、ワークフロービジュアライザーが開き、ワークフローを構築できるようになります。詳細は、ワークフロービジュアライザー セクションを参照してください。それ以外の場合は、次のいずれかの方法を選択します。
ワークフロービジュアライザーを閉じて、新しく保存したテンプレートの Details タブに戻ります。そこで次のタスクを実行できます。
- パーミッション、通知、スケジュール、Survey を確認、編集、追加する
- 完了したジョブの表示
- ワークフローテンプレートを構築する
- 注記
起動する前にテンプレートを保存しないと、Notifications タブは、テンプレートを保存した後にのみ表示されます。
は無効のままになります。