お名前.com VPS に hubot をインストール

お名前.com VPS に hubot をインストールしてみた。

(0)まずはCentOS 7.1 をインストールする。

お名前.com の VPS に CentOS 7.1 をインストールする – with a Christian Wife
https://wacw.cf/2018/02/06/installing-centos-on-vps/

(1)git をインストールする。

(1-1)Development Tools をインストールする。

$ yum groupinstall 'Development Tools'

“cc: Command not found” when compiling a PAM module on Centos – Unix & Linux Stack Exchange
https://unix.stackexchange.com/questions/287913/cc-command-not-found-when-compiling-a-pam-module-on-centos

(1-2)最新版のGitをインストールする。

CentOS に最新版のGitをインストールする | bacchi.me
https://bacchi.me/linux/how-to-install-git/

(2)Node.js をインストールする(Node.js をインストールすると npm も含まれる)。

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
$ yum -y install nodejs
$ yum install gcc-c++ make

以下のコマンドでインストールができたことを確認する。

$ node -v
$ npm -v

参考:
【俺用メモ】 CentOS6にNode.jsをインストールする – Qiita
https://qiita.com/ozawan/items/86ca7551d59005128892

Installing Node.js via package manager | Node.js
https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora

(3)Yeoman をインストール。

$ sudo npm install -g yo

参考:
node.js – Yeoman | yo command not found – Stack Overflow
https://stackoverflow.com/questions/24511032/yeoman-yo-command-not-found

(4)hubot をインストール。

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

(5)hubot 管理用ディレクトリの作成(適当な名前にする)。

$ mkdir mybot
$ cd mybot

(6)hubot のジェネレーターを起動し、各種設定をする。Bot adapter は slack にする。

$ yo hubot

(7)bot の動作確認。

$ /bin/hubot

Enter を押すと bot との対話ができるようになる。以下のように6で決めた bot の名前に対して ping を送ってみると、PONG と返ってくればうまくいったことになる。

mybot> mybot ping

(8)自分の Slack のチームのページで、「Customize Slack > Configure Apps」と進む。

検索ボックス「Search App Directory」で hubot を検索、選択。インストールする。

(9)bot の名前を聞かれるので適当に名前を付ける。次のページで表示される HUBOT_SLACK_TOKEN をコピーしておく。

(10)CentOS に戻る。hubot を生成したディレクトリに移動する(たぶん今いるディレクトリ)。

(11)hubot をデーモン化する。

(11-1)pm2 をインストールする。

$ npm i -g pm2

(11-2)app.json というファイルをを作成。

$ sudo nano app.json

以下を記述。

{
  "apps":[
    {
      "name" : "mybot",
      "args" : ["-a", "slack"],
      "script" : "./bin/hubot",
      "exec_mode" : "fork",
      "exec_interpreter" : "bash",
      "autorestart" : true,
      "env": {
        "NODE_ENV" : "production",
        "PORT" : "8080",
        "HUBOT_SLACK_TOKEN" : "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  ]
}

(11-3)以下のコマンドを実行。

$ pm2 start app.json

(11)トークン用のシェルスクリプトを作成する。

$ sudo nano hoge.sh

以下を記述、保存。

#!/bin/sh

export HUBOT_SLACK_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxx

./bin/hubot --adapter slack

(12)実行権限を追加。

$ chmod u+x hoge.sh

試しに実行してみる。

$ ./hoge.sh

Slack でアクティブになるはず。Slack で ping と打ってみると、PONG と返答される。

(13)hubot をデーモン化する。

$ pm2 start ./hoge.sh

デーモン化された hubot が表示されていれば成功。

参考:
CentOSにHubotを導入してSlackと連携させる – Qiita
https://qiita.com/GENM/items/0248433575580c9263b5

さくらvps+hubot+Slackでslack botをつくる – Qiita
https://qiita.com/bmf_san/items/1f04032b05c22de062af

RaspberryPiにhubotをインストールする – かべぎわブログ
http://www.kabegiwablog.com/entry/2017/09/26/113000

hubotをSlackと連携してデーモン化するまでの手順 – nametake-blog
http://nametake-1009.hatenablog.com/entry/2016/02/09/155105