CentOS7でhubotを動かしてみる

いまさら感がありますが、CentOS7にHubotをインストールしてみます。
hubot公式ガイドにしたがって、インストールしていきます。
導入の前提として、nodejsとnpmが必要なようですので準備します。


OSにhubotユーザーを作成

hubotが動作するOSユーザーを作成します。
今回は、hubotユーザーとして作成します。

useradd hubot
passwd hubot

ユーザーが作成されました。
以降の作業は、hubotユーザーを利用して実行します。

nvmをインストール

Node Version Managerをまずはインストールします。
しばらく処理の実行ログが流れたあと正常終了したら、.bashrcを再ロードしましょう。

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

=> Downloading nvm from git to '/home/hubot/.nvm'
=> Cloning into '/home/hubot/.nvm'...

〜省略〜

=> Appending source string to /home/hubot/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="/home/hubot/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

NodeJSをインストール

nvmを利用して、nodejsをインストールします。
nvm install node とコマンドを入力すれば、最新版のnodejsがインストールされます。
npm も同時にインストールされています。

nvm install node
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v8.5.0 (npm v5.3.0)
Creating default alias: default -> node (-> v8.5.0)

npmで各種モジュール群をインストール

npmのコマンドを使っていくつかのモジュール群をインストールします。

npm install -g hubot coffee-script
npm install -g yo generator-hubot

hubotをインストール

hubotのモジュール群を配備するディレクトリを作成します。
今回は atombot という名前にします。途中で対話式でいくつかの入力を求められますが、適切に入力すればhubotのインストールは完了です。

mkdir atombot
cd atombot/
yo hubot
                     _____________________________  
                    /                             \
   //\              |      Extracting input for    |
  ////\    _____    |   self-replication process   |
 //////\  /_____\   \                             /
 ======= |[^_/\_]|   /----------------------------  
  |   | _|___@@__|__                                
  +===+/  ///     \_\                               
   | |_\ /// HUBOT/\\                             
   |___/\//      /  \\                            
         \      /   +---+                            
          \____/    |   |                            
           | //|    +===+                            
            \//      |xx|                            

? Owner User <user@example.com>
? Bot name atombot
? Description A simple helpful robot for your Company
? Bot adapter campfire

rocketchatアダプターを使ってatombotをchatにJoinさせる

今回は rocketchat のbotとして動作させてみることにします。
hubot-rocketchatのページにかなり詳細に記載されています。

RocketChatのURLやチャット接続ユーザーなどを環境変数に設定しておきます。環境変数の値は、適切に変更して設定します。
なお、事前に rocketchat 側にbot用のユーザーやroomは適切に作成しておく必要があります。

export ROCKETCHAT_URL=http://{rocketchat-url}:{port}
export ROCKETCHAT_ROOM=general,atom
export ROCKETCHAT_USER={bot-user-name}
export ROCKETCHAT_PASSWORD={bot-user-password}
export ROCKETCHAT_AUTH=password

あとは起動するだけです。
しばらくすると、atombot がチャットルームに参加してくるはずです。

npm install hubot-rocketchat
bin/hubot -a rocketchat

自分好みのスクリプトを書いてhubotに問いかけることで、仕事の効率化がはかれるかもしれないですね。hubotスクリプトは、また今度やってみようと思います。


参照

Getting Started With Hubot

hubot-rocketchat