コンソール上の処理終了通知をslackに投稿する

  • 16
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

前置き

偉大なる先駆者様
[10分で出来る]シェルスクリプトの結果をslackに投稿

上記のスクリプトを使用して、コマンドラインで処理終了したタイミングでslackに通知を飛ぶようにする。
処理時間の長いスクリプトを流した後の、終了アラートに最適なコマンドになります。

<注意>
処理終了を通知した欲しいだけなので、標準出力はそのままコンソールに出します。
処理{成功|失敗}はコンソールを見て確認しましょう。
</注意>

アプリのslackにてchanelを作る

自分のslack上に通知専用チャンネルnotify-me を作成

01.png

Webのslackにて、WebHookを設定

integrationの設定

Incoming WebHooks

02.png

先ほど、作ったchannelを設定する。
後はデフォルトで。

03.png

saveしましょう

04.png

後ほど、使用するのでWebhook URLをコピーしておく。
下記のような書式のもの
https://hooks.slack.com/services/AAA/BBB

使用するシェルを設定する

スクリプト設置

先駆者様のスクリプトを一部改変したもの
iganari/notify-me.sh

上記の中で設定するものは4つ

  • WEBHOOK
    • 先ほど設定したWebHook URLを入れる
  • CHANNEL
    • slack上の通知したいchannelの固定する
  • BOTNAME
    • botの名前を設定可能
      • 愛着が湧く名前がいいかも。
  • FACEICON、{icon_url|icon_emoji}

    • 通知するbotのアイコンを指定。
    • slackに登録してあるアイコンを使いたければicon_emoji、URLを使いたければicon_urlを使用する
      • 愛着が湧くアイコンがいいかも。
  • 上記を元に設定してみる

### Incoming WebHooksのURL
WEBHOOKURL="https://hooks.slack.com/services/AAA/BBB"
### slack 送信チャンネル
CHANNEL=${CHANNEL:-"#notify-me"}
### slack 送信名
BOTNAME=${BOTNAME:-"Claudia M"}
### slack アイコン
ICON='icon_url'
FACEICON="https://pbs.twimg.com/profile_images/474832226773770240/MMctMu9Y.png"

.bashrcに登録

最後にcliから呼び出せるように、.bashrcにaliasを登録します。自分はMac環境ですのでOSが違う場合にはよしなに書き直してください。

~/cmd-shell/slack/notify-me.sh
  • ~/.bashrcにaliasを登録
    • メンション機能をつけると通知が分かりやすくなると思います。
~/.bashrc
+ ### notify-me scripts
+ alias nm="echo '@cigaguri 頼まれた処理が終わったわよ!!' | sh ~/cmd-shell/slack/notify-me.sh"

動作確認

例として、vagrant upが終了したタイミングでslackに通知して貰います。
処理終了を通知した欲しいだけなので、標準出力はそのままコンソールに出します。(2回目

$ vagrant up ; nm
Bringing machine 'svr01' up with 'virtualbox' provider...
==> svr01: Importing base box 'bento/centos-6.7'...
==> svr01: Matching MAC address for NAT networking...
==> svr01: Checking if box 'bento/centos-6.7' is up to date...

割愛

slackに通知が来る

06.png

これで日々の処理が少し幸せになりますね♡

追記

後記録書きました。
併せて読んで頂けると幸いです。

http://iganari.hatenablog.com/entries/2016/09/25