CentOS7でhubotを動かしてみる

Posted on 2017/09/24

ToC

いまさら感がありますが、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
/method/server-side/img/atom-bot_hud867ea54039b03edc55b316500a1ba78_70477_600x0_resize_lanczos_3.png

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


参照

[amazon_link asins=‘4800711428,4798150738,4774167975,4798051640,4798125997,4048910779’ template=‘ProductCarousel’ store=‘lunalab-22’ marketplace=‘JP’ link_id=‘c149c303-a103-11e7-a72e-3590ba5a1cf6’]