25.4. 通知タイプ
Automation Controller は、ジョブのステータスやその他のイベントに関する通知を送信するために使用できる複数の通知タイプをサポートしています。
次の通知タイプが Automation Controller でサポートされています。
各通知タイプには、独自の設定と動作セマンティクスがあります。さまざまな方法でテストする必要がある場合があります。さらに、各タイプの通知を特定の詳細または通知をトリガーする一連の基準までカスタマイズできます。
関連情報
25.4.1. Email リンクのコピーリンクがクリップボードにコピーされました!
メール通知タイプは、さまざまな SMTP サーバーをサポートし、SSL/TLS 接続もサポートしています。
メール通知を設定するには、次の詳細を入力します。
- Host
- Recipient list
- Sender e-mail
- Port
- Timeout (秒単位): 最大 120 秒まで設定できます。これは、Automation Controller がメールサーバーへの接続を試行して失敗するまでの時間の長さです。
25.4.2. Grafana リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller を設定して、Grafana に通知を送信できます。
Grafana を統合するには、まず Grafana システム で API キーを作成する必要があります。これは、Automation Controller に与えられるトークンです。
Grafana 通知を設定するには、次の詳細を入力します。
- Grafana URL: Grafana API サービスの URL (例: http://yourcompany.grafana.com)。
- Grafana API key: まず、Grafana システムで API キーを作成する必要があります。
- オプション: ID of the dashboard Grafana アカウントの API キーを作成したら、一意の ID を使用してダッシュボードを設定できます。
- オプション: ID of the panel: パネルとグラフを Grafana インターフェイスに追加した場合、この ID を指定できます。
- オプション: Tags for the annotation: 設定している通知のイベントのタイプを識別するためのキーワードを入力します。
- Disable SSL verification: SSL/TLS 検証はデフォルトでオンになっていますが、ターゲットの証明書の信頼性検証をオフにできます。内部 CA またはプライベート CA を使用する環境の検証を無効にするには、このオプションを選択します。
25.4.3. IRC リンクのコピーリンクがクリップボードにコピーされました!
IRC (インターネットリレーチャット) を使用して、通知を送信するように Automation Controller を設定できます。
IRC 通知は、接続してチャネルまたは個々のユーザーにメッセージを配信し、その後切断する IRC ボットの形式をとります。通知ボットは SSL/TLS 認証もサポートしています。ボットは現在 Nickserv による認証をサポートしていません。チャネルまたはユーザーが存在しないか、オンラインではない場合、通知に失敗します。障害シナリオは、接続専用に予約されています。
IRC 通知を設定するには、次の詳細を入力します。
- オプション: IRC server password: IRC サーバーには、接続用のパスワードが必要な場合があります。サーバーでパスワードが必要でない場合は、空白のままにしておきます。IRC Server Port: IRC サーバーポート。IRC Server Address: IRC サーバーのホスト名またはアドレス。IRC Nick: サーバー接続後のボットのニックネーム。Destination Channels or Users: 通知の送信先となるユーザーまたはチャネルのリスト。
- オプション: SSL 検証を無効にする: 接続時にボットが SSL/TLS を使用するようにする場合はチェックします。
25.4.4. Mattermost リンクのコピーリンクがクリップボードにコピーされました!
Mattermost 通知タイプは、Mattermost のメッセージングおよびコラボレーションワークスペースへのシンプルなインターフェイスを提供します。
Mattermost 通知を設定するには、次の詳細を入力します。
- Target URL: 送信先の完全な URL。
- オプション: Username: 通知のユーザー名を入力します。
- オプション: Channel: 通知のチャネルを入力します。
- Icon URL: この通知向けに表示するアイコンを指定します。
- Disable SSL verification: ターゲットの証明書の信頼性の検証をオフにします。内部 CA またはプライベート CA を使用する環境の検証を無効にするには、このオプションを選択します。
25.4.5. PagerDuty リンクのコピーリンクがクリップボードにコピーされました!
PagerDuty を統合するには、まず PagerDuty システム で API キーを作成する必要があります。これは、Automation Controller に与えられるトークンです。次に、Automation Controller にも与えられる Integration Key を提供する Service を作成します。
PagerDuty 通知を設定するには、次の詳細を入力します。
- API Token: まず、PagerDuty システムで API キーを作成する必要があります。これは、Automation Controller に与えられるトークンです。
-
PagerDuty subdomain: PagerDuty アカウントにサインアップすると、通信するための固有のサブドメインを受け取ります。たとえば、"testuser" としてサインアップした場合、Web ダッシュボードは
testuser.pagerduty.comにあり、APItestuserを完全なドメインではなくサブドメインとして指定します。 - API service/Integration Key: PagerDuty で作成した API サービス/統合キーを入力します。
- Client Identifier: これは、API キーとサービスを使用しているサービスを識別するために、アラートの内容とともに PagerDuty サービスに送信されます。これは、複数の統合で同じ API キーとサービスを使用している場合に役立ちます。
25.4.6. Rocket.Chat リンクのコピーリンクがクリップボードにコピーされました!
Rocket.Chat 通知タイプは、Rocket.Chat のコラボレーションおよびコミュニケーションプラットフォームへのインターフェイスを提供します。
Rocket.Chat 通知を設定するには、次の詳細を入力します。
-
Target URL:
POSTedの完全な URL。 - オプション: Username: ユーザー名を入力します。
- オプション: Icon URL: この通知向けに表示するアイコンを指定します。
- Disable SSL Verification: ターゲットの証明書の信頼性の検証をオフにします。内部 CA またはプライベート CA を使用する環境の検証を無効にするには、このオプションを選択します。
25.4.7. Slack リンクのコピーリンクがクリップボードにコピーされました!
Slack は、チームの共同コミュニケーションおよびメッセージングツールです。
Slack 通知をセットアップするには、次の詳細を入力します。
- Slack アプリケーション。詳細は、作成方法に関する Slack ドキュメントの クイックスタート ページを参照してください。
- Token: トークン。詳細は、Current token types ドキュメントページの Legacy bots およびボットトークンの詳細を参照してください。
- Destination Channel: 1 行につき 1 つの Slack チャネル。チャネルにはナンバー記号 (#) が必要です。特定のメッセージに返信するか、スレッドを開始するには、親メッセージ ID が 16 桁であるチャネルに親メッセージ ID を追加します。10 桁目の後にドット (.) を手動で挿入する必要があります。たとえば、:#destination-channel, 1231257890.006423 です。
Notification color: 通知の色を指定します。使用できる色は 16 進数の色コードです (#3af、#789abc など)。ボットまたはアプリを設定したら、次の手順を完了する必要があります。
- Apps に移動します。
- 新しく作成されたアプリケーションをクリックし、Add features and functionality に移動します。これにより、受信 Webhook、ボット、パーミッションを設定したり、アプリケーションをワークスペースにインストール したりできます。
25.4.8. Twilio リンクのコピーリンクがクリップボードにコピーされました!
Twilio を使用して通知を送信するように Automation Controller を設定します。
Twilio は音声と SMS の自動化サービスです。サインインしたら、メッセージを送信する電話番号を作成する必要があります。次に、Programmable SMS で メッセージングサービス を定義し、以前に作成した番号をそれに関連付けることができます。
この番号またはその他の情報を確認してからでないと、任意の番号に送信するときに使用できない可能性があります。Messaging Service には、ステータスコールバック URL は必要なく、受信メッセージを処理する機能も必要ありません。
個人 (またはサブ) アカウント設定の下に、API 認証情報があります。Twilio は 2 つの認証情報を使用して、API リクエストがどのアカウントから送信されているかを判断します。ユーザー名として機能する Account SID と、パスワードとして機能する Auth Token。
Twilio 通知を設定するには、次の詳細を入力します。
- Account SID: アカウント SID を入力します。
- Account Token: アカウントトークンを入力します。
- Source Phone Number: メッセージングサービスに関連付けられた番号を "+15556667777" の形式で入力します。
- Destination SMS Numbers: SMS を受信する番号のリストを入力します。10 桁の電話番号である必要があります。
25.4.9. Webhook リンクのコピーリンクがクリップボードにコピーされました!
Webhook 通知タイプは、事前定義された Web サービスに POST を送信するためのシンプルなインターフェイスを提供します。
Automation Controller は、JSON 形式の関連する詳細を含むデータペイロードとともに、アプリケーションおよび JSON コンテンツタイプを使用して、このアドレスに POST を送信します。一部の Web サービス API は、HTTP リクエストが特定のフィールドを含む特定の形式であることを想定しています。
次のように Webhook 通知を設定します。
-
Basic 認証の
PUTを使用して、HTTP メソッドを設定します。 - 送信リクエストのボディー。
- Basic 認証を使用して認証を設定します。
Webhook 通知を設定するには、次の詳細を入力します。
- オプション: Username: ユーザー名を入力します。
- オプション: Basic 認証パスワード:
-
ターゲット URL: Webhook 通知の
PUTまたはPOSTedの送信先となる完全な URL を入力します。 - HTTP ヘッダー: キーと値が文字列である JSON 形式でヘッダーを入力します。以下に例を示します。
{"Authentication": "988881adc9fc3655077dc2d4d757d480b5ea0e11", "MessageType": "Test"}`.
{"Authentication": "988881adc9fc3655077dc2d4d757d480b5ea0e11", "MessageType": "Test"}`.
- Disable SSL Verification: SSL/TLS 検証はデフォルトでオンになっていますが、ターゲットの証明書の信頼性の検証をオフにできます。内部 CA またはプライベート CA を使用する環境の検証を無効にするには、このオプションを選択します。
- HTTP メソッド: Webhook のメソッドを選択します。
- POST : 新しいリソースを作成します。他のカテゴリーに該当しない演算用の汎用動詞としても機能します。Webhook サービスで PUT が必要であるとわかっている場合を除き、POST が必要になる可能性が高くなります。
- PUT: 特定のリソース (識別子によって) またはリソースのコレクションを更新します。リソース識別子が事前にわかっている場合は、PUT を使用して特定のリソースを作成することもできます。
25.4.9.1. Webhook ペイロード リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller が Webhook エンドポイントに送信するデータペイロードを確認して、通知を設定するための関連ジョブの詳細を理解します。
次のデータは、Webhook エンドポイントの Automation Controller によって送信されます。
以下は、Automation Controller から返される Webhook メッセージを介した started 通知の例です。
{"id": 38, "name": "Demo Job Template", "url": "https://host/#/jobs/playbook/38", "created_by": "bianca", "started":
"2020-07-28T19:57:07.888193+00:00", "finished": null, "status": "running", "traceback": "", "inventory": "Demo Inventory",
"project": "Demo Project", "playbook": "hello_world.yml", "credential": "Demo Credential", "limit": "", "extra_vars": "{}",
"hosts": {}}POST / HTTP/1.1
{"id": 38, "name": "Demo Job Template", "url": "https://host/#/jobs/playbook/38", "created_by": "bianca", "started":
"2020-07-28T19:57:07.888193+00:00", "finished": null, "status": "running", "traceback": "", "inventory": "Demo Inventory",
"project": "Demo Project", "playbook": "hello_world.yml", "credential": "Demo Credential", "limit": "", "extra_vars": "{}",
"hosts": {}}POST / HTTP/1.1
次のデータは、Webhook エンドポイントの Automation Controller によって success/fail ステータスとして返されます。
以下は、Webhook メッセージを通じて Automation Controller によって返される success/fail 通知の例です。
{"id": 46, "name": "AWX-Collection-tests-awx_job_wait-long_running-XVFBGRSAvUUIrYKn", "url": "https://host/#/jobs/playbook/46",
"created_by": "bianca", "started": "2020-07-28T20:43:36.966686+00:00", "finished": "2020-07-28T20:43:44.936072+00:00", "status": "failed",
"traceback": "", "inventory": "Demo Inventory", "project": "AWX-Collection-tests-awx_job_wait-long_running-JJSlglnwtsRJyQmw", "playbook":
"fail.yml", "credential": null, "limit": "", "extra_vars": "{\"sleep_interval\": 300}", "hosts": {"localhost": {"failed": true, "changed": 0,
"dark": 0, "failures": 1, "ok": 1, "processed": 1, "skipped": 0, "rescued": 0, "ignored": 0}}}
{"id": 46, "name": "AWX-Collection-tests-awx_job_wait-long_running-XVFBGRSAvUUIrYKn", "url": "https://host/#/jobs/playbook/46",
"created_by": "bianca", "started": "2020-07-28T20:43:36.966686+00:00", "finished": "2020-07-28T20:43:44.936072+00:00", "status": "failed",
"traceback": "", "inventory": "Demo Inventory", "project": "AWX-Collection-tests-awx_job_wait-long_running-JJSlglnwtsRJyQmw", "playbook":
"fail.yml", "credential": null, "limit": "", "extra_vars": "{\"sleep_interval\": 300}", "hosts": {"localhost": {"failed": true, "changed": 0,
"dark": 0, "failures": 1, "ok": 1, "processed": 1, "skipped": 0, "rescued": 0, "ignored": 0}}}