25.5. カスタム通知の作成
通知フォーム上の各 通知タイプ の テキストの内容をカスタマイズ できます。
手順
-
ナビゲーションパネルから、
を選択します。 - をクリックします。
- Type リストから通知タイプを選択します。
トグルを使用して Customize messages を有効にします。
さまざまなジョブイベントに、次のようなカスタムメッセージを提供できます。
- 開始メッセージの本文
- 成功メッセージの本文
- エラーメッセージの本文
- ワークフロー承認の本文
- ワークフロー拒否メッセージの本文
- ワークフロー保留メッセージの本文
- ワークフロータイムアウトメッセージの本文
メッセージの形式は、設定している通知の種類によって異なります。たとえば、メールおよび PagerDuty 通知のメッセージは、本文と件名を備えた典型的なメールのように見えます。この場合、Automation Controller はフィールドを Message および Message Body として表示します。他の通知タイプでは、イベントのタイプごとに メッセージ のみが必要です。
Message フィールドには、最上位の変数 (id
または name
など、属性と組み合わされている job
) を含むテンプレートを使用して、事前に入力されます。テンプレートは、中括弧で囲まれており、Automation Controller が提供する一定のフィールドから取り込むことができ、次のように事前入力されたメッセージフィールドに表示されます。
この事前入力フィールドは、イベントの通知の受信者に一般的に表示されるメッセージを提案します。必要に応じてジョブに独自の属性を追加することで、さまざまな基準でこれらのメッセージをカスタマイズできます。カスタム通知メッセージは、Jinja (Ansible Playbook で使用されるのと同じテンプレートエンジン) を使用してレンダリングされます。。
以下に概要を示すように、メッセージとメッセージ本文にはさまざまな種類のコンテンツがあります。
- メッセージは常に文字列のみであり、一行だけです。改行はサポートされていません。
メッセージ本文は、ディクショナリーまたはテキストのブロックのいずれかです。
-
Webhook と PagerDuty のメッセージ本文はディクショナリー定義を使用します。これらのデフォルトのメッセージ本文は
{{ job_metadata }}
です。そのまま使用することも、独自のディクショナリーを提供することもできます。 メールのメッセージ本文には、テキストのブロックまたは複数行の文字列が使用されます。デフォルトのメッセージ本文は次のとおりです。
{{ job_friendly_name }} #{{ job.id }} had status {{ job.status }}, view details at {{ url }} {{ job_metadata }}
このテキストは、
{{ job_metadata }}
を残したまま編集することも、{{ job_metadata }}
をドロップすることもできます。本文はテキストのブロックであるため、任意の文字列を使用できます。{{ job_metadata }}
は、実行中のジョブを説明するフィールドを含むディクショナリーとしてレンダリングされます。いずれの場合も、{{ job_metadata }}
には次のフィールドが含まれます。-
id
-
name
-
url
-
created_by
-
started
-
finished
-
status
traceback
注記{{ job_metadata }}
内の個々のフィールドをクエリーすることはできません。通知テンプレートで{{ job_metadata }}
を使用すると、すべてのデータが返されます。結果のディクショナリーは次のようになります。
{"id": 18, "name": "Project - Space Procedures", "url": "https://host/#/jobs/project/18", "created_by": "admin", "started": "2019-10-26T00:20:45.139356+00:00", "finished": "2019-10-26T00:20:55.769713+00:00", "status": "successful", "traceback": "" }
{{ job_metadata }}
がジョブでレンダリングされる場合、次の追加フィールドが含まれます。-
inventory
-
project
-
Playbook
-
credential
-
limit
-
extra_vars
hosts
結果のディクショナリーは次のようになります。
{"id": 12, "name": "JobTemplate - Launch Rockets", "url": "https://host/#/jobs/playbook/12", "created_by": "admin", "started": "2019-10-26T00:02:07.943774+00:00", "finished": null, "status": "running", "traceback": "", "inventory": "Inventory - Fleet", "project": "Project - Space Procedures", "playbook": "launch.yml", "credential": "Credential - Mission Control", "limit": "", "extra_vars": "{}", "hosts": {} }
{{ job_metadata }}
がワークフロージョブでレンダリングされる場合、次の追加フィールドが含まれます。body
(これはワークフロージョブ内のノードを列挙し、各ノードに関連付けられたジョブの説明を含みます)結果のディクショナリーは次のようになります。
{"id": 14, "name": "Workflow Job Template - Launch Mars Mission", "url": "https://host/#/workflows/14", "created_by": "admin", "started": "2019-10-26T00:11:04.554468+00:00", "finished": "2019-10-26T00:11:24.249899+00:00", "status": "successful", "traceback": "", "body": "Workflow job summary: node #1 spawns job #15, \"Assemble Fleet JT\", which finished with status successful. node #2 spawns job #16, \"Mission Start approval node\", which finished with status successful.\n node #3 spawns job #17, \"Deploy Fleet\", which finished with status successful." }
-
-
Webhook と PagerDuty のメッセージ本文はディクショナリー定義を使用します。これらのデフォルトのメッセージ本文は
無効な構文や使用できないフィールドの参照を使用する通知テンプレートを作成すると、エラーの内容を示すエラーメッセージが表示されます。通知のカスタムメッセージを削除すると、この場所にはデフォルトのメッセージが表示されます。
カスタムメッセージを編集せずに通知テンプレートを保存した場合 (または編集してデフォルト値に戻した場合)、Details 画面にはデフォルトが表示されるはずで、カスタムメッセージテーブルは表示されません。いずれかの値を編集して保存すると、テーブル全体が Details 画面に表示されます。
関連情報
- 詳細は、Ansible ドキュメントの Using variables with Jinja2 を参照してください。
- Automation Controller には、正しいデータを取得してメッセージを表示する、有効な構文が必要です。
サポートされている属性のリストと適切な構文構造については、カスタム通知でサポートされている属性 セクションを参照してください。