3.13.3. ジョブテンプレートの作成
以下の手順に従って、ジョブテンプレートを作成してください。
手順
-
ナビゲーションパネルから、
を選択します。 - テンプレート ページで、テンプレートの作成 リストから ジョブテンプレートの作成 を選択します。
次のフィールドに適切な詳細を入力します。
注記フィールドに 起動時にプロンプトを表示する チェックボックスが選択されている場合、ジョブを起動すると、起動時にそのフィールドの値を入力するよう求められます。
ほとんどのプロンプト値は、ジョブテンプレートに設定されている値をオーバーライドします。
次の表に例外を示します。
Expand フィールド オプション 起動プロンプト Name
ジョブの名前を入力します。
該当なし
Description
必要に応じて、任意の説明を入力します (オプション)。
該当なし
Job Type
ジョブタイプを選択します。
- Run: 起動時に Playbook を開始し、選択したホストで Ansible タスクを実行します。
- Check: Playbook の「ドライラン」を実行します。実際に変更を加えずに、変更内容を報告します。チェックモードをサポートしていないタスクは無視され、変更予定の内容は報告されません。
ジョブタイプの詳細は、Ansible ドキュメントの Playbook セクションを参照してください。
はい
Inventory
ログインしているユーザーが使用できるインベントリーから、このジョブテンプレートで使用するインベントリーを選択します。
システム管理者は、ジョブテンプレート内の特定のインベントリーを使用できるように、ユーザーまたはチームのパーミッションを割り当てる必要があります。
必須です。
インベントリーのプロンプトは、後続のプロンプトウィンドウに独自のステップとして表示されます。
Project
ログインしているユーザーが利用できるプロジェクトから、このジョブテンプレートで使用するプロジェクトを選択します。
該当なし
Source control branch
このフィールドは、ブランチの上書きを許可するプロジェクトを選択した場合にのみ表示されます。ジョブの実行で使用する上書きブランチを指定します。空白のままにすると、プロジェクトから指定された SCM ブランチ (またはコミットハッシュまたはタグ) が使用されます。
詳細は、ジョブブランチのオーバーライド を参照してください。
はい
Execution Environment
このジョブの実行に使用するコンテナーイメージを選択します。実行環境を選択する前にプロジェクトを選択する必要があります。
必須です。
実行環境のプロンプトは、後続のプロンプトウィンドウに独自のステップとして表示されます。
Playbook
使用可能な Playbook から、このジョブテンプレートで起動する Playbook を選択します。このフィールドには、選択したプロジェクトのプロジェクトベースパスにある Playbook の名前が自動的に入力されます。あるいは、Playbook がリストされていない場合は、その Playbook での実行に使用するファイル (foo.yml など) の名前など、Playbook の名前を入力することもできます。無効なファイル名を入力すると、テンプレートにエラーが表示されるか、ジョブが失敗します。
該当なし
Credentials
アイコンを選択すると、別のウィンドウが開きます。
利用可能なオプションから、このジョブテンプレートで使用する認証情報を選択します。
リストが膨大な場合は、ドロップダウンメニューリストを使用して認証情報タイプでフィルタリングします。一部の認証情報タイプは、特定のジョブテンプレートに適用されないため、リストされていません。
- 選択した場合、デフォルトの認証情報が含まれるジョブテンプレートが起動したときに、別の認証情報を指定すると、デフォルトの認証情報が置き換えられます (認証情報が同じタイプの場合)。このメッセージの例を次に示します。
ジョブテンプレートのデフォルトの認証情報は、同じタイプの認証情報に置き換える必要があります。Please select a credential for the following types in order to proceed: Machine.- 必要に応じて、さらに認証情報を追加できます。
- 認証情報のプロンプトは、後続のプロンプトウィンドウに独自のステップとして表示されます。
Labels
-
必要に応じて、このジョブテンプレートを説明するラベル (
devやtestなど) を指定できます。 - ラベルを使用して、表示内のジョブテンプレートと完了したジョブをグループ化およびフィルタリングします。
- ラベルはジョブテンプレートの追加時に作成されます。ラベルは、ジョブテンプレートで指定されたプロジェクトを使用して、単一の組織に関連付けられます。組織のメンバーは、編集パーミッション (管理者ロールなど) を持っている場合、ジョブテンプレートにラベルを作成できます。
- ジョブテンプレートを保存すると、ラベルが ジョブテンプレートの 概要画面の展開ビューに表示されます。
-
ラベルの横にある
を選択すると、そのラベルが削除されます。ラベルが削除されると、そのラベルはその特定のジョブまたはジョブテンプレートとの関連付けが解除されますが、ラベルを参照する他のジョブには関連付けられたままになります。
- ジョブは、起動時にジョブテンプレートからラベルを継承します。ジョブテンプレートからラベルを削除すると、ジョブからも削除されます。
- 選択すると、デフォルト値が指定されている場合でも、必要に応じて起動時に追加のラベルを指定するようにプロンプトが表示されます。
-
既存のラベルを削除することはできません。
を選択すると、新しく追加されたラベルのみが削除され、既存のデフォルトラベルは削除されません。
Forks
Playbook の実行中に使用する並列または同時プロセスの数です。値がゼロの場合、
/etc/ansible/ansible.cfg で上書きされない限り、Ansible のデフォルト設定である 5 つの並列プロセスが使用されます。はい
Limit
Playbook が管理または影響を与えるホストのリストをさらに制限するためのホストのパターンを指定します。複数のパターンをコロン (:) で区切ることができます。コア Ansible と同じです。
- a:b は「a または b のグループに含まれる」という意味です。
- a:b:&c は、「a または b に含まれるが、c には必ず含まれなければならない」という意味です。
- a:!b は「a にはあるが、b には絶対にない」という意味です。
詳細は、Ansible ドキュメントの Patterns: targeting hosts and groups を参照してください。
はい
選択しない場合、ジョブテンプレートはインベントリー内のすべてのノードに対して実行されるか、または [制限] フィールドで事前に定義されたノードのみに対して実行されます。ワークフローの一部として実行する場合は、代わりにワークフロージョブテンプレートの制限が使用されます。
Verbosity
Playbook の実行時に Ansible が生成する出力レベルを制御します。Normal やさまざまな Verbose または Debug 設定から詳細度を選択します。これは 詳細 レポートビューでのみ表示されます。詳細ログには、すべてのコマンドの出力が含まれます。デバッグログは非常に詳細で、一部のサポート事例に役立つ SSH 操作に関する情報が含まれています。
詳細度レベルを
5 に設定すると、ジョブの実行中に Automation Controller が頻繁にブロックされるため、ジョブが完了したという報告が遅れたり (実際には完了しているにもかかわらず)、ブラウザーのタブがフリーズしたりする可能性があります。はい
Job Slicing
このジョブテンプレートを実行するスライスの数を指定します。各スライスは、インベントリーの一部に対して同じタスクを実行します。ジョブスライスの詳細は、ジョブスライス を参照してください。
はい
Timeout
ジョブがキャンセルされるまでの実行時間 (秒単位) を指定できます。タイムアウト値を設定するには、次の点を考慮してください。
- 設定にはグローバルタイムアウトが定義されており、デフォルトは 0 で、タイムアウトがないことを示します。
- ジョブテンプレートの負のタイムアウト (<0) は、ジョブの "タイムアウト" はありません。
- ジョブテンプレートのタイムアウトが 0 の場合、ジョブはデフォルトでグローバルタイムアウトになります (デフォルトではタイムアウトなし)。
- 正のタイムアウトは、そのジョブテンプレートのタイムアウトを設定します。
はい
Show Changes
Ansible タスクによって加えられた変更を確認できます。
はい
Instance Groups
このジョブテンプレートに関連付ける インスタンスおよびコンテナーグループ を選択します。リストが長い場合は、
アイコンを使用してオプションを絞り込んでください。ジョブテンプレートのインスタンスグループは、ジョブのスケジュール基準に影響します。ルールは、ジョブランタイムの動作 および ジョブ実行場所の制御 を参照してください。システム管理者は、ジョブテンプレート内のインスタンスグループを使用できるように、ユーザーまたはチームのパーミッションを割り当てる必要があります。コンテナーグループを使用するには管理者権限が必要です。
- 必須です。
選択すると、ジョブの優先インスタンスグループが優先順に提供されます。最初のグループの容量が不足している場合は、容量のあるグループが見つかるまでリスト内の後続のグループが検討され、見つかった時点でそのグループが選択されてジョブが実行されます。
- インスタンスグループの入力を求めるプロンプトが表示された場合は、入力した内容が通常のインスタンスグループ階層を置き換え、組織とインベントリーのすべてのインスタンスグループをオーバーライドします。
- インスタンスグループのプロンプトは、後続のプロンプトウィンドウに独自のステップとして表示されます。
Job Tags
Playbook のどの部分を実行するかを指定するには、入力して 作成 メニューを選択します。詳細と例は、Ansible ドキュメントの Tags を参照してください。
はい
Skip Tags
特定のタスクや Playbook の一部をスキップするには、入力して 作成 メニューを選択します。詳細と例は、Ansible ドキュメントの Tags を参照してください。
はい
Extra Variables
- 追加のコマンドライン変数を Playbook に渡します。これは、ansible-playbook の "-e" または "-extra-vars" コマンドラインパラメーターです。このパラメーターは、Ansible ドキュメントの Defining variables at runtime で説明されています。
-
YAML または JSON を使用してキーまたは値のペアを提供します。これらの変数には優先順位の最大値があり、他の場所で指定された他の変数をオーバーライドします。以下は値の例です:
git_branch: production release_version: 1.5
必須です。
スケジュールで
extra_varsを指定できるようにするには、ジョブテンプレートの変数で起動 時にプロンプトを表示する を選択するか、ジョブテンプレートでアンケートを有効にする必要があります。回答済みのアンケート質問はextra_varsになります。必要に応じて、このテンプレートを起動するための次のオプションを設定できます。
-
特権昇格: このオプションをオンにすると、この Playbook を管理者として実行できるようになります。これは
、ansible-playbookコマンドに--becomeオプションを渡すのと同等です。 - プロビジョニングコールバック: このオプションをオンにすると、ホストが REST API を介して Automation Controller にコールバックし、このジョブテンプレートからジョブを開始できるようになります。詳細は、プロビジョニングコールバック を参照してください。
Webhook を有効にする: チェックを入れると、ジョブテンプレートを起動するために使用される、定義済みの SCM システム Web サービスとのインターフェイス機能が有効になります。GitHub と GitLab がサポートされている SCM システムです。Webhook を有効にすると、他のフィールドが表示され、以下の追加情報の入力を求められます。
- Webhook サービス:Webhook を受信するサービスを選択してください。
- Webhook URL: リクエストを POST する Webhook サービスの URL が自動的に入力されます。
- Webhook キー:Webhook サービスが Automation Controller に送信されるペイロードに署名するために使用する、生成された共有シークレット。Automation Controller がこのサービスから Webhook を受け入れるようにするには、Webhook サービスの設定で指定する必要があります。
Webhook 認証情報: 必要に応じて、ステータス更新を Webhook サービスに送信するために使用する認証情報として、GitHub または GitLab の個人アクセストークン (PAT) を指定します。
選択する前に、認証情報が存在している必要があります。
認証情報を作成するには、認証情報タイプ を参照してください。
- Webhook の設定の関連情報は、Webhook の使用 を参照してください。
- 同時実行ジョブ: このオプションをオンにすると、キュー内のジョブが互いに依存していない限り、同時に実行できるようになります。ジョブスライスを同時に実行する場合は、このボックスをオンにします。詳細は、Automation Controller の容量決定とジョブへの影響 を参照してください。
- 事実の保存を有効にする: チェックを入れると、Automation Controller は実行中のジョブに関連するすべてのホストの収集された事実をインベントリーに保存します。
- インスタンスグループによるフォールバックを防止する: このオプションをオンにすると、[インスタンスグループ] フィールドにリストされているインスタンスグループのみがジョブを実行できるようになります。オフの場合、ジョブの実行場所の制御 で説明されている階層に基づいて、実行プール内の使用可能なすべてのインスタンスが使用されます。
-
特権昇格: このオプションをオンにすると、この Playbook を管理者として実行できるようになります。これは
ジョブテンプレートの詳細の設定が完了したら、 をクリックします。
テンプレートを作成しても、ジョブテンプレートページは終了せず、ジョブテンプレートの 詳細 タブに進みます。テンプレートを保存したら、 をクリックしてジョブを開始できます。また、 をクリックして、権限、通知、完了したジョブの表示、アンケートの追加 (ジョブタイプがスキャンでない場合) などのテンプレートの属性を追加または変更することもできます。起動する前にまずテンプレートを保存する必要があります。そうしないと、 は無効のままになります。
検証
-
ナビゲーションパネルから、
を選択します。 - 新しく作成したテンプレートが テンプレート ページに表示されていることを確認してください。