オーマイガー東京

オーマイガー東京というブログを24歳東京暮らし新卒2年目のエンジニアが書いています。

今更だけどhubotをherokuにデプロイして、slackと連携してみた

わたしは、
みんながモンハンを飽きた頃にハマり、
恭一郎も人気になりきってからハマり、
そして、今回のchatopsも御多分にもれず、ようやく興味が持つことができたところです。

そんなこんなで、全てのことをchatに任せたいという願望が時代から3年遅れくらいでやってきました。 なので、時代遅れですがchatopsを作り上げるために少しづつ環境を整えていこうと思います。

全体の構想については後日またまとめます

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

f:id:maru_33:20180225165308p:plain

slackに登録

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

get.slack.help  

slackチームにhubotAppを追加

チームにhubotを追加する

slack.com

この時に取得できる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からアクセスできるようにする

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

devcenter.heroku.com

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が寝ないための処理を行います

詳しくみたい人は以下 github.com

$ 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で反応を確かめる

f:id:maru_33:20180226205821p:plain

(博士かわいい)

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

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

f:id:maru_33:20180225173231p:plain

以上です!!

恭一郎とは

あ、ちなみに恭一郎はこちらです笑

www.youtube.com