概要
BOTとは特定時間にコメントを送ったり、実ユーザのコメントに対して自動的に返答を行う自動発言システムのことをいいます。
今回はSlackのチャット上で、HubotというGithub社のフレームワークを利用してクラウド上にデプロイし24時間運用するまでを紹介します。
Hubotとは
Github社製のBOTのフレームワークであり、多くのチャットツールに対応させることができます。
Node.js上でnpmを用いることで導入が簡単であり、CoffeeScript/javaScriptによって拡張が容易であることが特徴です。
インストール
今回はCentOS 6 上で実装しました。
nodejsのインストール
yum -y install nodejs
※ v6.14.3
を使用
npmのインストール
yum install -y npm
Hubot のインストール
npm install -g yo generator-hubot
sudo npm install -g coffee-script hubot yo generator-hubot
Hubot用のディレクトリを作り移動
mkdir myhubot
cd myhubot
BOTの作成
yo hubot
Bot adapter にはslack
と入力する
Hubotの起動
先程作成した、myhubot
配下で以下のコマンドを実行する。
~/myhubot/bin/hubot
ping と入力しコンソールから"PONG"と返ってくればHubotのインストールは完了です。
ちなみにctrl+cでHubotを停止できる。
SlackとHunotの連携
Slackのトークンの取得
Slackの招待したいチームにログインし、Hubotのトークンを取得を行います。
Hubotに取得したトークンを登録する
xoxbから始まるトークンをhubot
に記載を行う
vi ~/myhubot/bin/hubot
#!/bin/sh set -e npm install #BOTのトークンを登録 export HUBOT_SLACK_TOKEN="xoxb-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxx"
起動コマンド
先程作成した、myhubot
配下で以下のコマンドを実行する。
bin/hubot --adapter slack
Hubotの永続化
上記でHubotを起動することで、BOTを動かすことは可能になりました。
ただこの状態ではSSHのセッションを切った瞬間にBOTが止まってしまいます。
下記の対応をすることでHubotを永続化させることができます。
Foreverのインストール
npm install forever --save
PATHの設定を行う
vi ~/.bash_profile
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH #以下を追記を行う export PATH=$PATH:/home/~/myhubot/node_modules/.bin
設定を再読み込みを行う
source .bash_profile
Hubotの起動ファイルの追記
先ほどトークンを記載したファイルにexport PATH=$PATH:./node_modules/.bin
を追記を行う
execをforeverに書き換える
vi ~/myhubot/bin/hubot
#!/bin/sh set -e npm install #BOTのトークンを登録 export HUBOT_SLACK_TOKEN="xoxb-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxx" export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH" #exec node_modules/.bin/hubot --name "myhubot" "$@" forever start -c coffee node_modules/.bin/hubot --adapter slack
再びHubotを起動する
~/myhubot/bin/hubot
デーモン化確認コマンド
以下のコマンドでデーモン化しているかを確認する
forever list