はじめに
AnsibleのジョブからTeamsにメッセージを送信する場合、uriモジュールを利用してPOSTすることもできると思いますが、 office_365_connector_cardモジュール を利用すると簡単に実装できます。
office_365_connector_cardモジュール
ドキュメント
事前準備
通知用のTeamsチャネルのコネクタにIncoming Webhookを構成しておきます。
モジュールの使い方
Ansible単体で利用する場合はモジュールをインストールしておきます。
https://rheb.hatenablog.com/entry/ansible_collections
Ansible Tower/AWXの場合はcollections/requirements.yml に community.general を追加しておきます。
collections/requirements.yml
---
collections:
- community.general # <--追加する
Playbookには以下のように記述します。
使い方
- name: Task Name
community.general.office_365_connector_card:
webhook: TeamsのIncoming Webhook URL #必須
title: 件名 #省略可
text: 本文
実装例:作成したEC2のPublic DNS名をTeamsに通知する
サンプルコード
サンプルコード
〜略〜
# Send Teams Webhook
- name: Send Teams Webhook
community.general.office_365_connector_card:
webhook: "{{ teams_webhookurl }}"
title: "あなたのWordPressが正常に作成されました。"
text: "ようこそページにアクセスし利用を開始しましょう! http://{{ gather_ec2.instances[0].public_dns_name }}/wordpress/"
register: teams_webhook
delegate_to: localhost
vars:
ansible_connection: local
実行結果
おわりに
Ansibleは豊富なモジュールが提供されているので、積極的に利用することでPlaybook作成の効率化が期待できそうです。