技術な話し

hubotをherokuにデプロイして、slackと連携してみた

はじめに

今回は、hubotをherokuにデプロイして、slackで連携するまでを記事にまとめました。
chatopsを実現したい人の参考になればと思います。

hubotとは

まずHubotは,GitHub社が開発しMITライセンスで公開しているNode.jsでbotを作り動かすためのフレームワークのことです。
botを作ることが出来るんですねー。

hubotの特徴

hubotの特徴はというと

  • 様々なチャットツールに対応していること

Hubotの素晴らしい特徴は、チャットツールとのやり取りを「Adapter」というモジュールに切り出すことで、本体のcodeを修正せずに様々なチャットツールに対応できることです

公式docsはこちら

hubotをherokuにデプロイして、slackと連携する方法

では、hubotをherokuにデプロイして、slackと連携する方法を手順を追って紹介して生きます!

slackに登録

まずは、slackでアカウント作ってください。

slackに登録
 

slackチームにhubotAppを追加

チームにhubotを追加する

slackチームにhubotAppを追加

この時に取得できるTOKENはあとで使います。

hubotをローカルに作成

nodeをインストールしていない場合は、インストールしてください。

Yeomanをインストール

npm install -g yo generator-hubot

プロジェクトを作成

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

? Owner Enter
? Bot name Enter
? Description Enter
? Bot adapter slack <- ここ大事
   create bin/hubot
   create bin/hubot.cmd
   create Procfile
   create README.md
   create external-scripts.json
   create hubot-scripts.json
   create .gitignore
   create package.json
   create scripts/example.coffee
   create .editorconfig
                     _____________________________
 _____              /                             \
 \    \             |   Self-replication process   |
 |    |    _____    |          complete...         |
 |__\\|   /_____\   \     Good luck with that.    /
   |//+  |[^_/\_]|   /----------------------------
  |   | _|___@@__|__
  +===+/  ///     \_\
   | |_\ /// HUBOT/\\
   |___/\//      /  \\
         \      /   +---+
          \____/    |   |
           | //|    +===+
            \//      |xx|

で、Procfileを編集

$ vim Procfile (下記の形式に編集)
web: bin/hubot -a slack -n hoge

githubにプッシュ

したら、プッシュしましょう

$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin hogehoge
$ git push -u origin master

herokuに登録

以下のサイトからログインしてください。

Heroku | Sign up

 

herokuにcliからアクセスできるようにする

以下のリンクにしたがってやってください。

herokuにcliからアクセスできるようにする

macを使っている場合は、以下を打ち込めば大丈夫です。

$ brew install heroku/brew/heroku

herokuにcliでログイン

以下のコマンドを打ち、ログイン

$ heroku login

herokuにアプリを作成

以下のコマンドを打ち、作りたいアプリ名で作成

$ heroku create hogehoge(各自書き換え)

herokuにプッシュ

$ git push heroku master

configを書き換える

無料で使えるようにワーカープロセスを1つにします。

$ heroku ps:scale web=1

hubotに必要なredisを追加する

$ heroku addons:add rediscloud

slack的な設定を行う

$ heroku config:set HUBOT_SLACK_TOKEN=先ほど取得したTOKEN

herokuが寝ないための処理を行います

詳しくみたい人は以下

herokuが寝ないための処理

$ heroku config:set HUBOT_HEROKU_WAKEUP_TIME=0:00
$ heroku config:set HUBOT_HEROKU_SLEEP_TIME=23:59
$ heroku config:set TZ='Asia/Tokyo'
$ heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s | grep web.url | cut -d= -f2)

slackで反応を確かめる

(博士かわいい)

githubにプッシュしたらherokuが更新されるように設定

herokuのUIに移動し、deploy -> github -> Automatic deploysのそこにあるボタンをおす

以上です!!

ABOUT ME
maru
maru
オーマイガー東京(編集長)/キグルミだ熱狂(gt, 作詞作曲)/新卒2年目エンジニアです。赤坂と浅草におります。最近作った→ https://lgtmeow3.tokyo