share facebook facebook2 twitter menu hatena pocket slack

2015.05.22 FRI

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

比企 宏之

WRITTEN BY比企 宏之

ようやく本編?です。

今回は最も基本的なグリーンの部分を解説?します。
このBLOGはざっくりとした流れの説明なので、実際に実装する場合は他のBLOGを
参照してくださいw。

11513_1cloudpackでは

でも記載されていますが、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のグループ名の

11513_2をクリックし

11513_3をクリックし

11513_4タグの

11513_5のAddをクリックし

11513_6botの名前をつけて
表示されている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)

で、停止させてください。
プログラムを更新する時も再起動の必要があるのでご注意を

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

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

比企 宏之

比企 宏之

The latest Tweets from Universal Ocellaris (@UniOce). そろそろ自身が得意とするエリア(IoT)に世の中が近づいてきて虎視眈々と決起のタイミングを狙っている開発では無敗の元モバイル端末開発&WEBアプリ開発者で、今はクラウド業界にダイブして、cloudpackのMSPのリーダーの一人