先日AAP/AWXの通知機能でSlack連携をまとめたので、ついでにPlaybookのタスクから任意のメッセージを通知する方法について。
使うモジュールは以下
たとえばAAP/AWX構築Playbookで資材内にSlackのトークンを持っているのであれば、ついでに作業完了を通知するのに使う、とかに応用できる。
トークンの作成
Slack通知を行うタスクの作成
最小限の内容であれば以下の通り。
トークン、メッセージ、投稿先チャンネル名を指定する。
--- - hosts: localhost gather_facts: false tasks: - community.general.slack: token: "{{ oauth_token }}" msg: 届け!ときめき―― channel: develop color: '#f0a6b8'
このタスクが実行されると、以下のようにSlackに通知される。
ボットのカスタマイズ
community.general.slackはメッセージ毎にアイコンやボット名のカスタムも可能。
ただし、タスク(モジュール)からアイコンや名前を指定するにはchat:write:customize
権限が必要。
スコープの設定
ボット作成時にchat:write
のみ権限を与えている場合は追加する必要がある。
Slackアプリ一覧から対象の設定画面の「OAuth & Permissions」の設定を開き、「Bot Token Scopes」で「Add an OAuth Scope」押下し、chat:write:customize
を追加する。
追加すると画面上部に追加完了と、アプリのreinstallが必要な必要な旨が表示されるので、書かれているリンクに進んで更新した権限で再インストールする。
これで準備OK
パラメタの追加
実装例
- community.general.slack: token: "{{ oauth_token }}" msg: 完全にときめいちゃった! channel: develop color: '#1d1d1d' icon_url: https://lovelive-anime.jp/nijigasaki/img/tv/member/c01s.png username: '高咲侑'
この内容でタスクが実行されると以下の通り🌈