それなりに適当にやってます

なんとなくそれっぽいメモとか備忘録とか適当に。 2018年5月にブログ移転しました。 古い記事は未整理です。

CentOS7.x + Hubot のインストールとSlack連携

すごく今さらな感じがするけどメモ c⌒っ゚д゚)っφ

参考URL

Hubot

Bot 実行ユーザの作成

以降、Node.jsの環境構築〜Hubotを動かすところまで一般ユーザで作業を行うので、Bot実行用にユーザを作成する。

# groupadd -g 1000 oppai# useradd -g 1000 -u 1000 underboob# passwd underboob# su - underboob$ 

Node.js 〜 Hubot のインストールまで

先に Node.js(nvm/npm) の環境を作り、その後 Hubot のインストールを行う。

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash$ source ~/.bashrc$ nvm ls-remote             #<-導入可能な Node.js のバージョンを確認$ nvm install v4            #<-v4 latest バージョンのインストール$ nvm alias default 4.4.7   #<-デフォルトで利用する設定$ node --versionv4.4.7  $ npm install -g npm        #<-npm自身の更新

これで Node.js の準備は出来たので、続けて Hubot のインストールを行う。詳細はドキュメントを参照

$ npm install -g yo generator-hubot

Hubot の環境作成

Hubot を設置するディレクトリを作成し、Hubot の環境を作る。

$ cd ~ ; mkdir myhubot ; cd $_$ yo hubot                 #<-★"root"で実行するとコケるので注意以下、質問に答える形で Owner, Bot name, Description, Bot adapter などの設定を行う。- Owner User <user@example.com>- Bot name mybot           #<-★"hubot"で作ると以後の処理でコケるので注意- Description example- Bot adapter slack

完了後、動作確認として bot に話しかけてみる。

$ ./bin/hubot...mybot> mybot ping         #<-"mybot" に "ping" と問いかけ  mybot> PONG               #<-"mybot" が "PONG" と返答  mybot> exit  

Slack 連携

  • Slackの "Apps & integrations" で、Hubot との連携を許可し API Token を取得する。
  • Bot を参加させたい Channel に、作成した Bot を招待する。
(Slack上のChannelにて) /invite @mybot
  • 取得した API Token を利用して Hubot を起動、起動時のログ出力で連携したか分かる。
$ HUBOT_SLACK_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ./bin/hubot --adapter slack
  • Slack上の対象チャネルで Bot から応答がある事を確認
(Slack) @mybot ping(Slack) PONG

systemd による自動起動

GitLab に置いてるソースコード内にサンプルが置いてあるので、それを参考にすれば良い。

https://github.com/github/hubot/blob/master/examples/hubot.service

Bot の拡張

Bot の応答

Hubot をインストールしたディレクトリの直下に、./scripts 下に、coffee スクリプトで作成する。 既定で example.coffee がある。

コマンドの実行

他所のブログだけどこちらを参照

とりあえずこれでチャット経由でコマンドを実行して応答を得られたので満足(*´ω`)

以上