Kompira Enterpriseを用いて運用作業の自動化を行う際、障害発生や処理終了などの通知は mailto関数を用いて電子メールで送ることが一般的ですが、API を持ったメッセージアプリケーションに送信することも可能です。今回は Slack に通知を行ってみましょう。
手順に関しては、他の多くのツールからのSlack連携と同様に、Slack APIを用います。また各種権限が制限されている場合には管理者と相談して進めてください。
Slack側の設定
お使いになっている Slackのアカウントにメッセージ受信用のチャネルを作成します。今回は #kompira を作ります。
次に Slack に外部からメッセージを送信できるように、”Incoming WebHooks” の設定をします。
「Slack API」にアクセスし、”Creare New App” をクリックします。
“Create an app” が表示されますので、”From scratch” を選択します。
その後、
”App Name” に “Kompira2Slack” 、
”Pick a workspace to develop your app in:” にご利用の Slack のチームを指定します。
“Add features and functionality” が表示されますので、”Incomming Webhooks” を選択します。
“Activate Incoming Webhooks” を以下のように有効化し、その後 “Add New Webhook to Workspace” をクリックします。
すると、以下のような画面に切り替わりますので、投稿したいチャンネルを選択し、”許可する” を押します。
今回は、”#kompira” を選択します。
画面が切り替わり、”Webhook URL” が表示されます。こちらの内容をコピーしておいてください。
ジョブフローの作成
続いて、Kompira Enterprise 上でジョブフロー「Slackへ通知」を次のように作成します。
| message = "This is a sample line of text. Does it work?" |
# Webhook URL
| url = "https://hooks.slack.com/services/xxxx/xxxxx/xxxxxxxx" |
urlopen(
url=url,
data={"text": message},
http_method="POST",
encode="json",
quiet=true
) ->
print("Slack へ通知しました。")
ここでパラメータ “url” には、Slack のセットアップ画面で表示された “Webhooks URL” を記載してください。
このジョブフローを実行すると、Slackに次のように投稿されます。
このように、Kompira Enterprise から Slack のチャンネルへの投稿は容易に可能です。
また、これを他のジョブフローから利用する場合には、例えば以下のように呼び出します。
[./Slackへ通知: message="緊急事態: 至急対応してください"]
単純なメッセージ送信以外にもリンク URL の送信やアイコン・色の変更なども行えます。リッチなメッセージ作成の詳細は Slack API の「Messaging for Slack apps」をご参照ください。
Kompira Enterpriseの製品情報
https://www.kompira.jp/
サーバーやネットワーク機器などの運用を自動化するための連携処理基盤ソフトウェアです。
運用手順書の操作作業の自動化、監視ツールやメールなどをトリガーにした保守作業の自動実行など、独自のKompiraジョブフロー言語を用いたスクリプトを用意する事で、個々の機器やワークフローにきめ細かく対応する事が可能です。