雑なA型によるクラウドとモバイルと運営と

大阪でJAWS-UG OSAKAとInnovation EGGを運営している人のBLOGです。時々更新します〜

【cloudpack 大阪 BLOG】MSPのシステム化について(不定期連載) まずはHubotのインストールとslack連携まで

ようやく本編?です。

 

今回は最も基本的なグリーンの部分を解説?します。

このBLOGはざっくりとした流れの説明なので、実際に実装する場合は他のBLOGを

参照してくださいw。

 

f:id:unioce:20150328105400p:plain

 

cloudpackでは

 

でも記載されていますが、Slackを使っています。

なので、Slackがコミュニケーションの中心となりますので、MSPの

業務でもSlackがメインとなります。

Slackが便利な所は(他のチャットツールでもありますが)、botやwebhookの

他システムとの連携が秀逸なところです。

 

で、どこの勉強会でもSlack=bot=hubotな流れがずっとあるので、

MSPの業務にHubotを比企のほうで導入してみようと思いました。

 

ただ、どんな小さな内容を導入するのでも

①24時間/365日稼働する必要がある

②開発ではないので業務の合間の時間のみで実装やデバッグと導入

③顔をなかなか合わせない(スケジュールのローテーションの都合)メンバーにも使ってもらえるように配慮した仕組み

する必要があり、

①に関しては、バグを出さずに重い実装もしない

に関しては、自分でがんばる&手軽に出来る実装方法を選ぶ

に関しては、自然と使ってもらえる機能を用意して、必ず使う方向に持って行く

が必要な要件で、

とりあえず手始めとして

日次業務で時間になったらHubotがSlack上につぶやいて完了した事を報告しないと

Slack上に一定間隔で忘れていないか?をしつこくつぶやき続けるHubotのサービスを

作りました。

 

Hubotのインストールの仕方は残念ながら自身がやりだしたのがVer1の方で

今展開しても意味がないのでVer2のほうでのインストールの仕方

Hubot のインストール - Qiita

などを参考にしてください。

 

Hubotをインストールすると結構な頻度でHEROKUが現れますが

今回はAWSのEC2(CentOS)上にインストールをしました。

Hubotをインストールするだけでは駄目なので

# cd 作ったプロジェクトのディレクトリ
# npm install hubot-slack --save

で、slackのアダプターをインストールしてあげる必要があります。

上記だけでは駄目でSlackの画面左上にある、Slackのグループ名の

f:id:unioce:20150327182330p:plain

をクリックし

f:id:unioce:20150327182354p:plain

をクリックし

f:id:unioce:20150327182442p:plain

タグの

f:id:unioce:20150327182503p:plain

のAddをクリックし

f:id:unioce:20150327182544p:plain

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)

で、停止させてください。

プログラムを更新する時も再起動の必要があるのでご注意を

 

とりあえず今回はここまで