Ansible TowerのWebhook通知の中身をのぞいてみた

概要

こんにちは。サイオステクノロジー 吉田です。
今回はAnsible Towerの機能である”通知”で選択できるタイプwebhookの中身をキャプチャして見てみたいと思います。

前準備(通知とジョブテンプレートの作成)

Ansible Towerの管理画面から通知を作成します。
タイプにWebhookを選択すると、ターゲットURL,HTTPヘッダーの入力エリアが表示されますので設定していきます。
また、ジョブテンプレートを作成し通知を送るように設定します。

キャプチャ実行

通知で設定したターゲットURLのサーバ上でtcpdumpを使用してパケットキャプチャします。
ジョブテンプレートを実行し成功/失敗により通知が送られてきます。

キャプチャ結果 ※bodyは見やすいように整形しています。

ワークフロー成功時

POST / HTTP/1.1
Host: 192.168.138.140:8080
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: Tower 3.4.3
Content-Length: 487
Content-Type: application/json

{
  "status": "successful",
  "body": "Workflow job summary:\n\n- node #33 spawns job #116, \"wordpress-web\", which finished with status successful.\n- node #34 spawns job #118, \"wordpress-db\", which finished with status successful.",
  "name": "make-wordpress",
  "started": "2019-05-27T08:19:59.616664+00:00",
  "traceback": "",
  "friendly_name": "Workflow Job",
  "created_by": "admin",
  "url": "https://192.168.138.139/#/workflows/115",
  "finished": "2019-05-27T08:24:49.617842+00:00",
  "id": 115
}

ワークフロー失敗時

POST / HTTP/1.1
Host: 192.168.138.140:8080
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: Tower 3.4.3
Content-Length: 479
Content-Type: application/json

{
  "status": "failed",
  "body": "Workflow job summary:\n\n- node #31 spawns job #111, \"wordpress-web\", which finished with status successful.\n- node #32 spawns job #113, \"wordpress-db\", which finished with status failed.",
  "name": "make-wordpress",
  "started": "2019-05-27T07:50:22.495226+00:00",
  "traceback": "",
  "friendly_name": "Workflow Job",
  "created_by": "admin",
  "url": "https://192.168.138.139/#/workflows/110",
  "finished": "2019-05-27T07:52:12.080703+00:00",
  "id": 110
}

webhook通知はPOSTリクエスト、Bodyはjson形式で送られてくるようです。jsonの中身はジョブのステータスやID,開始/終了時間,ワークフロー内の個別ジョブの結果などが含まれているようです。

まとめ

今回はWebhookの中身を見てみました。テンプレートの実行が終了したら通知が送られてくるようにして、中身に応じて他システムと連携する。などにも活用できそうです。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です