27.4. 通知タイプ
次の通知タイプが Automation controller でサポートされています。
各通知タイプには、独自の設定と動作セマンティクスがあります。さまざまな方法でテストする必要がある場合があります。さらに、各タイプの通知を特定の詳細または通知をトリガーする一連の基準までカスタマイズできます。
関連情報
カスタム通知の設定の詳細は、カスタム通知の作成 を参照してください。次のセクションでは、各種類の通知について詳しく説明します。
27.4.1. Email
メール通知タイプは、さまざまな SMTP サーバーをサポートし、SSL/TLS 接続もサポートしています。
メール通知を設定するには、次の詳細を入力します。
- Host
- Recipient list
- Sender e-mail
- Port
- Timeout (秒): Automation controller がメールサーバーへの接続を試行して失敗するまでの時間を最大 120 秒まで指定できます。
27.4.2. 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 検証はデフォルトでオンになっていますが、ターゲットの証明書の信頼性の検証をオフにできます。内部 CA またはプライベート CA を使用する環境の検証を無効にするには、このオプションを選択します。
27.4.3. IRC
IRC 通知は、接続してチャネルまたは個々のユーザーにメッセージを配信し、その後切断する IRC ボットの形式をとります。通知ボットは SSL 認証もサポートしています。ボットは現在、Nickserv ID をサポートしていません。チャネルまたはユーザーが存在しないか、オンラインではない場合、通知に失敗します。障害シナリオは、接続専用に予約されています。
IRC 通知を設定するには、次の詳細を入力します。
- オプション: IRC server password: IRC サーバーには、接続用のパスワードが必要な場合があります。サーバーでパスワードが必要でない場合は、空白のままにしておきます。IRC server port: IRC サーバーポートIRC server address: IRC サーバーのホスト名またはアドレスIRC nick: サーバー接続後のボットのニックネームDestination channels or users: 通知の送信先となるユーザーまたはチャネルのリスト。
- オプション: Disable SSL verification: ボットが接続するときに SSL を使用するかどうかをチェックします。
27.4.4. Mattermost
Mattermost 通知タイプは、Mattermost のメッセージングおよびコラボレーションワークスペースへのシンプルなインターフェイスを提供します。
Mattermost 通知を設定するには、次の詳細を入力します。
- ターゲット URL: Post を送信する先の完全な URL。
- オプション: Username: 通知のユーザー名を入力します。
- オプション: Channel: 通知のチャネルを入力します。
- Icon URL: この通知向けに表示するアイコンを指定します。
- Disable SSL verification: ターゲットの証明書の信頼性の検証をオフにします。内部 CA またはプライベート CA を使用する環境の検証を無効にするには、このオプションを選択します。
27.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 キーとサービスを使用している場合に役立ちます。
27.4.6. Rocket.Chat
Rocket.Chat 通知タイプは、Rocket.Chat のコラボレーションおよびコミュニケーションプラットフォームへのインターフェイスを提供します。
Rocket.Chat 通知を設定するには、次の詳細を入力します。
-
Target URL:
POST
先の完全な URL。 - オプション: Username: ユーザー名を入力します。
- オプション: Icon URL: この通知向けに表示するアイコンを指定します。
- Disable SSL Verification: ターゲットの証明書の信頼性の検証をオフにします。内部 CA またはプライベート CA を使用する環境の検証を無効にするには、このオプションを選択します。
27.4.7. Slack
Slack は、チームの共同コミュニケーションおよびメッセージングツールです。
Slack 通知を設定するには、次の詳細を入力します。
- Slack アプリケーション。詳細は、作成方法に関する Slack ドキュメントの クイックスタート ページを参照してください。
- トークン。詳細は、現在のトークンタイプの ドキュメントページの レガシーボット とボットトークンの詳細を参照してください。
ボットまたはアプリを設定したら、次の手順を完了する必要があります。
- Apps に移動します。
- 新しく作成したアプリをクリックし、Add features and functionality に移動します。これにより、受信 Webhook、ボット、パーミッションを設定したり、アプリをワークスペースにインストール したりできます。
27.4.8. Twilio
Twilio は音声と SMS の自動化サービスです。サインインしたら、メッセージの送信元となる電話番号を作成する必要があります。次に、Programmable SMS で メッセージングサービス を定義し、以前に作成した番号をそれに関連付けることができます。
この番号またはその他の情報を確認してからでないと、任意の番号に送信するときに使用できない可能性があります。Messaging Service には、ステータスコールバック URL は必要なく、受信メッセージを処理する機能も必要ありません。
個人 (またはサブ) アカウント設定の下に、API 認証情報があります。Twilio は 2 つの認証情報を使用して、API リクエストがどのアカウントから送信されているかを判断します。ユーザー名として機能する Account SID と、パスワードとして機能する Auth Token。
Twilio 通知を設定するには、次の詳細を入力します。
- Account token: アカウントトークンを入力します。
- Source phone number: メッセージングサービスに関連付けられた番号を "+15556667777" の形式で入力します。
- Destination SMS number(s): SMS を受信する番号のリストを入力します。10 桁の電話番号である必要があります。
- Account SID: アカウント SID を入力します。
27.4.9. Webhook
Webhook 通知タイプは、事前定義された Web サービスに POST
を送信するためのシンプルなインターフェイスを提供します。Automation controller は、JSON 形式の関連詳細など、データペイロードを持つアプリケーションと JSON コンテンツタイプを使用して、このアドレスに POST
を送信します。一部の Web サービス API は、HTTP リクエストが特定のフィールドを含む特定の形式であることを想定しています。
次のように Webhook 通知を設定します。
-
HTTP メソッドの設定 (
POST
またはPUT
を使用) - 送信要求の本文
- 認証の設定 (Basic 認証を使用)
Webhook 通知を設定するには、次の詳細を入力します。
- オプション: Username: ユーザー名を入力します。
- オプション: Basic 認証パスワード:
-
ターゲット URL: Webhook 通知の
PUT
またはPOST
の送信先となる完全な URL を入力します。 - Disable SSL Verification: SSL 検証はデフォルトでオンになっていますが、ターゲットの証明書の信頼性の検証をオフにできます。内部 CA またはプライベート CA を使用する環境の検証を無効にするには、このオプションを選択します。
- HTTP ヘッダー: キーと値が文字列である JSON 形式でヘッダーを入力します。以下に例を示します。
{"Authentication": "988881adc9fc3655077dc2d4d757d480b5ea0e11", "MessageType": "Test"}`.
- HTTP メソッド: Webhook のメソッドを選択します。
- POST : 新しいリソースを作成します。他のカテゴリーに該当しない演算用の汎用動詞としても機能します。Webhook サービスで PUT が必要であるとわかっている場合を除き、POST が必要になる可能性が高くなります。
- PUT: 特定のリソース (識別子によって) またはリソースのコレクションを更新します。リソース識別子が事前にわかっている場合は、PUT を使用して特定のリソースを作成することもできます。
27.4.9.1. Webhook ペイロード
次のデータは、Webhook エンドポイントの Automation controller によって送信されます。
job id name url created_by started finished status traceback inventory project playbook credential limit extra_vars hosts http method
以下は、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
次のデータは、Webhook エンドポイントの Automation controller によって success/fail
ステータスとして返されます。
job id name url created_by started finished status traceback inventory project playbook credential limit extra_vars hosts
以下は、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}}}