Notifier (通知機能) は、名前、説明および定義された設定を持つ Notification (通知) タイプ (メール、Slack、Webhook など) のことを指します。
例:
通知は、Notifier (通知機能) による表示です。たとえば、ジョブが失敗すると、通知が Notifier (通知機能) が定義する設定を使用して送信されます。
大まかにみると、通知システムの通常のフローは以下のようになります。
/api/v2/notifiers
エンドポイントに Tower REST API の通知機能を作成します (API または Tower UI 経由)。/api/v2/job_templates/n/notifiers_error
API エンドポイントでジョブテンプレートに関連付けられます。特定のレベルで割り当てられる通知機能は、以下のような親オブジェクトで定義される通知機能を継承します。
ジョブが成功または失敗する場合、エラーまたは成功ハンドラーは上記で定義される手順で関連する通知機能の一覧をプルします。次に、ジョブについての関連する詳細を含むそれぞれの通知オブジェクトを作成し、これを宛先 (メールアドレス、slack チャンネル、sms 番号など) に送信します。これらの通知オブジェクトはジョブタイプ (ジョブ、インベントリー更新、プロジェクト更新) の関連リソースとして利用でき、/api/v2/notifications
から利用できます。また、関連リソースを調査し、通知機能から送信される通知を確認することもできます。
通知が失敗する場合、それに関連するジョブに影響を与えたり、これにより失敗することはありません。通知のステータスはその詳細エンドポイント (/api/v2/notifications/<n>
) で確認できます。
通知テンプレートを作成するには、以下を実行します。
それぞれには独自の設定および動作のセマンティクスがあり、それらのテストは異なる方法で実行する必要がある場合があります。以下のセクションでは詳細を説明します。
メール通知タイプは各種の SMTP サーバーをサポートし、TLS/SSL 接続のサポートがあります。
ユーザー名 - ホスト - 送信者のメール - Recepient list (受信者一覧) - パスワード - ポートなどの詳細を指定してメール通知を設定する必要があります。
ご用心
TLS および SSL 接続は相互に排他的であり、同時に選択することはできません。1 つのみを選択するようにしてください。両方を選択すると警告なしに失敗します。
Slack というコラボレーション用のチームのコミュニケーションおよびメッセージングツールは非常に設定しやすいツールです。
以下を指定して Slack 通知を設定する必要があります。
通知ボットが該当するチャンネルに参加できるように詳細する必要もあります。プライベートメッセージはサポートされないことに注意してください。
Twilio サービスは、音声および SMS 自動化サービスです。いったんサインインしたら、メッセージが送信される電話番号を作成する必要があります。プログラミング可能な SMS で「メッセージングサービス」を定義してから、作成した番号をそれに関連付けることができます。
この番号を使用して任意の番号に送信する前に、その番号や他の情報を確認する必要があります。メッセージングサービスにはステータスコールバック URL も、インバウンドメッセージを処理する機能も不要です。
個別 (またはサブ) アカウントの設定では、API 認証情報を設定します。Twilio は 2 つの認証情報を使用して API 要求の出所を判別します。「アカウント SID」はユーザー名として機能し、「認証トークン」はパスワードとして機能します。
Twilio を設定するには、以下の詳細を指定します。
PagerDutyは単純な統合です。ユーザーはまず pagerduty システムで API キー (Tower に提供されるトークン) を作成してから、Tower に指定される「統合キー」として提供する「サービス」を作成します。注意するべき他のオプションは以下のとおりです。
towertest.pagerduty.com
になり、サブドメイン (フルドメインではない) として Tower API towertest
を指定します。HipChat に統合する方法はいくつかの方法があります。Tower の実装は HipChat の「統合」を使用します。現在、これはメイン HipChat web ビューの右下にあります。そこから「Build your own Integration」を選択します。その作成後に、Tower に指定する必要のある auth_token を一覧表示します。HipChat 通知タイプに Tower が許可するフィールドにする他の詳細には以下が含まれます。
https://team.hipchat.com
のような形式になります。セルフホスト型の統合の場合は、https://hipchat.yourcompany.com/
に類するベース URL を使用し、それらの先頭に #
を付けずに該当する送信先チャンネルに追加します (“#engineering” ではなく “engineering”)。Ansible Tower の webhook 通知タイプは、POST を事前定義された web サービスに送信するための単純なインターフェースを提供します。Tower はアプリケーション/json コンテンツタイプを使用し、json 形式のすべての関連する詳細を含むデータペイロードでこのアドレスに POST を実行します。
パラメーターは非常に簡単です。
ターゲット URL: POST が実行される完全 URL。
HTTP ヘッダー: キーと値が文字列が含まれる JSON 形式のヘッダー。以下は例になります。
{"Authentication": "988881adc9fc3655077dc2d4d757d480b5ea0e11", "MessageType": "Test"}
Tower の IRC 通知は、メッセージをチャンネルまたは個別ユーザーに接続し、配信してから接続を解除する IRC ボットの形式を取ります。Tower の通知ボットは SSL 認証もサポートします。Tower のボットは現在 Nickserv ID をサポートしていません。チャンネルまたはユーザーが存在しないか、オンラインにない場合には通知は失敗しません。失敗シナリオは接続に関する場合に適用されます。
接続に関する情報は、以下のような分かりやすい情報になります。
towerhost
ホスト名の設定¶/etc/tower/settings.py
で、TOWER_URL_BASE='https://tower.example.com'
を編集して、通知のホスト名を変更します。https://tower.example.com
は任意のホスト名に置き換えてください。変更を保存してから ansible-tower-service restart
で Tower サービスを再起動する必要があります。
Tower ライセンスを更新すると、通知のホスト名も更新されます。Ansible Tower 3.0 の新規インストールでは、通知用にホストを設定する必要はありません。
TOWER_URL_BASE
の再設定¶Tower でベース URL (TOWER_URL_BASE
) の定義方法を判別する主な方法は、受信要求を確認し、受信要求に基づいてサーバーアドレスを設定する方法です。
まず Tower はデータベースから設定値を取ります。設定の値が見つからない場合、Tower はフォールバックし、設定ファイルの値を使用します。ユーザーが Tower ホストの IP アドレスに移動してライセンスを掲載する場合、掲載されるライセンスはデータベースの設定エントリーに書き込まれます。
正しくないアドレスが選択された場合に TOWER_URL_BASE
を変更するには、通知に表示する DNS エントリーを使用して Tower 設定 () メニューの「ライセンスの表示」リンクにあるライセンスに移動し、ライセンスを再度追加します。