前置き
偉大なる先駆者様
[10分で出来る]シェルスクリプトの結果をslackに投稿
上記のスクリプトを使用して、コマンドラインで処理終了したタイミングでslackに通知を飛ぶようにする。
処理時間の長いスクリプトを流した後の、終了アラートに最適なコマンドになります。
<注意>
処理終了を通知した欲しいだけなので、標準出力はそのままコンソールに出します。
処理{成功|失敗}はコンソールを見て確認しましょう。
注意>
アプリのslackにてchanelを作る
自分のslack上に通知専用チャンネルnotify-me
を作成
Webのslackにて、WebHookを設定
integrationの設定
先ほど、作ったchannelを設定する。
後はデフォルトで。
saveしましょう
後ほど、使用するのでWebhook URLをコピーしておく。
下記のような書式のもの
https://hooks.slack.com/services/AAA/BBB
使用するシェルを設定する
スクリプト設置
先駆者様のスクリプトを一部改変したもの
iganari/notify-me.sh
上記の中で設定するものは4つ
-
WEBHOOK
- 先ほど設定したWebHook URLを入れる
-
CHANNEL
- slack上の通知したいchannelの固定する
-
BOTNAME
- botの名前を設定可能
- 愛着が湧く名前がいいかも。
- botの名前を設定可能
-
FACEICON、{icon_url|icon_emoji}
- 通知するbotのアイコンを指定。
- slackに登録してあるアイコンを使いたければ
icon_emoji
、URLを使いたければicon_url
を使用する- 愛着が湧くアイコンがいいかも。
-
上記を元に設定してみる
- アイコンとしてクラウディアさんをお借りしました。愛着がわk
### 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が違う場合にはよしなに書き直してください。
- shellの配置(iganari/notify-me.sh)
~/cmd-shell/slack/notify-me.sh
- ~/.bashrcにaliasを登録
- メンション機能をつけると通知が分かりやすくなると思います。
+ ### 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に通知が来る
これで日々の処理が少し幸せになりますね♡
追記
後記録書きました。
併せて読んで頂けると幸いです。