【Ansible Tower/AWX】ジョブの実行開始・終了をメールで通知する


この記事はプロモーションを含みます。

Ansible

ホーム > Ansible Tower・AWX リファレンス

Ansible AWX・Tower環境で、ジョブの実行開始と終了(成功・失敗)をメールで通知する方法を解説します。

はじめに・実行環境

ここでは、Ansible AWX・Towerから、メールを送信させる方法を説明します。
Ansible AWX・Towerでは、ジョブの以下のタイミングでメールを送信することが出来ます。

  • ジョブの実行開始
  • ジョブの実行終了(成功時)
  • ジョブの実行終了(失敗時)

以下は、執筆時の実行環境です。

  • コントロールノード
    • MIRACLE LINUX release 8.4 (Peony)
    • Ansible AWX 15.0.1
  • ターゲットノード
    • AlmaLinux release 9.0 (Emerald Puma)

通知テンプレートの作成

ここでは、通知テンプレートを作成します。

通知テンプレートとは、ジョブの実行結果をどのように通知するかを定義したテンプレートです。

まずは、AWXのメニューより、「通知」をクリックします。
通知テンプレートの一覧画面が表示されるので、「新規通知テンプレートの作成」ボタン(画面右側にある緑色の+マーク)をクリックします。

以下のような、新規通知テンプレートを作成する画面が表示されるので、各項目を入力していきます。
入力後は、画面右下の「保存」をクリックします。

各項目の入力内容は、以下を参考にして下さい。(必須入力項目は赤字にしています)

  • 名前:作成する通知テンプレートの名称
  • 説明:作成する通知テンプレートについての説明
  • 組織:所属する組織
  • タイプ:通知に使用する機能(ここでは、メールを選択します)

タイプに「メール」を指定することで、下記の設定項目が追加されます。

AWXで使用するSMTPサーバーとして、ここでは「Elastic Email」を使用しています。
SMTPサーバーは任意なので、ご自身の使いやすいものを使用して下さい。

  • ユーザー名:SMTPサーバーに接続するためのユーザー名
  • パスワード:上記、ユーザー名に対応するパスワード
  • ホスト:SMTPサーバーのホスト名
  • 受信者リスト:通知を行うメールアドレス(1行に1つのアドレスを記述する)
  • 送信者のメール:送信者とするメールアドレス
  • ポート:SMTPサーバーに接続するためのポート番号
  • タイムアウト:メール送信時のタイムアウト値(デフォルトの30秒とする)
  • メールオプション:メール送信時のプロトコル(ここでは「TLSの使用」を選択)

通知テンプレートの作成は以上となります。

メールの送信確認

ここでは、作成した通知テンプレートから、正しくメールが送信出来るかの確認を行います。

再度、通知テンプレートの一覧画面に移動し、確認したい通知テンプレートの右側にあるベルマークをクリックします。
下記のように、「通知テンプレート名: Notification sent.」と表示されれば、メールの送信に成功しています。

下記のような文面で、メールが届いていれば、メールの受信も問題ありません。
環境によっては、ヘッダーやフッターなどが付与されている場合もあります。

件名:Tower Notification Test 1 https://towerhost

本文:Ansible Tower Test Notification 1

通知テンプレートが正しく動作することが確認出来たので、
次は、ジョブテンプレートに、通知テンプレートを紐づけていきます。

ジョブテンプレートへの組み込み

先程、作成した通知テンプレートをジョブテンプレートに組み込んでいきます。

まずは、ジョブの実行結果を通知したいジョブテンプレートの詳細画面を開き、「通知」タブをクリックします。
すると、以下のような画面が表示されるので、ジョブの開始、終了(成功・失敗)のスイッチをオンにします。

設定後は、ジョブテンプレートを起動します。
その後、AWXから送信されたメールを確認します。
(下記はジョブの開始時に送信されるメールです。)

件名:Job #146 ‘1000_Health_Check_For_Linux’ running: https://towerhost/#/jobs/playbook/146

本文:(ヘッダー、フッターは省略しています)

{
    "id": 146,
    "name": "1000_Health_Check_For_Linux",
    "url": "https://awx.localhost",
    "created_by": "awx",
    "started": "2023-03-01T15:09:09.704961+00:00",
    "finished": null,
    "status": "running",
    "traceback": "",
    "inventory": "Syutaku Inventory",
    "project": "Syutaku Project",
    "playbook": "PB0001_Health_Check_For_Linux.yml",
    "credential": "syutaku",
    "limit": "STKPUB002",
    "extra_vars": "{}",
    "hosts": {}
}

上記のようなメールが届いていれば、ジョブテンプレートへの通知テンプレートの組み込みは完了となります。

作業は以上です。これで実行時間が長いジョブなどを実行する場合でも、見張っておく必要が無くなりますね。本記事を参考に設定してみて下さい。

コメント

タイトルとURLをコピーしました