【cloudpack 大阪 BLOG】MSPのシステム化について(不定期連載) まずはHubotのインストールとslack連携まで
ようやく本編?です。
今回は最も基本的なグリーンの部分を解説?します。
このBLOGはざっくりとした流れの説明なので、実際に実装する場合は他のBLOGを
参照してくださいw。
cloudpackでは
や
でも記載されていますが、Slackを使っています。
なので、Slackがコミュニケーションの中心となりますので、MSPの
業務でもSlackがメインとなります。
Slackが便利な所は(他のチャットツールでもありますが)、botやwebhookの
他システムとの連携が秀逸なところです。
で、どこの勉強会でもSlack=bot=hubotな流れがずっとあるので、
MSPの業務にHubotを比企のほうで導入してみようと思いました。
ただ、どんな小さな内容を導入するのでも
①24時間/365日稼働する必要がある
②開発ではないので業務の合間の時間のみで実装やデバッグと導入
③顔をなかなか合わせない(スケジュールのローテーションの都合)メンバーにも使ってもらえるように配慮した仕組み
する必要があり、
①に関しては、バグを出さずに重い実装もしない
②に関しては、自分でがんばる&手軽に出来る実装方法を選ぶ
③に関しては、自然と使ってもらえる機能を用意して、必ず使う方向に持って行く
が必要な要件で、
とりあえず手始めとして
日次業務で時間になったらHubotがSlack上につぶやいて完了した事を報告しないと
Slack上に一定間隔で忘れていないか?をしつこくつぶやき続けるHubotのサービスを
作りました。
Hubotのインストールの仕方は残念ながら自身がやりだしたのがVer1の方で
今展開しても意味がないのでVer2のほうでのインストールの仕方
などを参考にしてください。
Hubotをインストールすると結構な頻度でHEROKUが現れますが
今回はAWSのEC2(CentOS)上にインストールをしました。
Hubotをインストールするだけでは駄目なので
# cd 作ったプロジェクトのディレクトリ # npm install hubot-slack --save
で、slackのアダプターをインストールしてあげる必要があります。
上記だけでは駄目でSlackの画面左上にある、Slackのグループ名の
をクリックし
をクリックし
タグの
のAddをクリックし
botの名前をつけて
表示されているAPI Tokenを保持し
Customize Icon/First & Last Name/What this bot does
な項目はわかりやすいのをセットし
Save IntegrationするとSlack側のHubotの設定は完了です。
※SlackはHubotからの通信が長期間ないと
勝手にDisableしてくれるNice(涙)な仕様なので、
繋がらない場合は、そこの設定も見ておいてください
あとはHubot側のEC2の環境変数に
export HUBOT_SLACK_TOKEN=控えておいたトークン
export HUBOT_SLACK_TEAM=チーム名
export HUBOT_SLACK_BOTNAME=botの名前
をセットして、
./bin/hubot --adapter slack
で起動させてエラーが出なければ、最初は#generalで反応するようになります。
※Ver2は試していませんが、各チャンネルでhubotを招くと反応するようになるようです。
※Ver1の時は
export HUBOT_SLACK_CHANNELMODE=whitelist
export HUBOT_SLACK_CHANNELS=チャンネル名
のような感じで記載する必要がありました。
ここでとりあえずHubotのインストールは終わりですが、
これまでの設定とAWSのEC2のセキュリティグループのポートがOPENしていたら
ハマる事は無いと思われます。
しっかりと設定を確認し、時間切れでのDisableになっていない事も確認してください。
なお、hubot(node.js)は、例外が発生するとサービスが継続できなくなりますので
sudo npm install forever -g
で、foreverをインストールし
forever start -c coffee node_modules/.bin/hubot -a slack
で起動させHubotを永続させてください。
なお、停止は
forever list
でプロセスIDを確認し(1つだけだと基本0です)
forever stop プロセスID(基本は0)
で、停止させてください。
プログラムを更新する時も再起動の必要があるのでご注意を
とりあえず今回はここまで