LoginSignup
9
10

More than 5 years have passed since last update.

ConohaにSlack連携したhubotを置いた

Posted at

Slackを私用で使い始めました

  • Slackが何かについては検索してください。まあいわゆるチャットツールです。
  • 前職で初めて使ったSlackが幸運にも転職先で使われ始めたので、せっかくだからもっと使い込んでみようと思った
    • だが不幸にも会社の人間にSlackの強力さがいまいち伝わていない模様
    • Slackの魅力はなんといってもWebサービスとの連携
    • ここでslackの良さを証拠を持ってして説明できれば会社に定着してくれるはず!

↑建前
↓本音

  • Chatops的に「人語で命令できる奴隷を常備しておきたい」。
    • プログラミングは嫌いじゃないが、何か単調な指示をするときくらいは日本語か英語でやらせてくれ

目的と前提

  • 自分で契約しているVPSでhubotを走らせ、slack連携によってアクセスさせてみよう。そして常時起動を目指そう。

  • 前提として、 何かしらのVPSを契約していること。

    • Herokuにデプロイもやったんだけどアイドル時間が長いとhubotが永眠して使い物にならん
    • 常駐させたいんですよ俺は
    • そういうしがらみのない、自分で色々できるVPSにしよっと…

導入

まずConoha(VPS)にhubotを導入

# yum -y update
# yum -y upgrade
# yum -y install git nodejs redis // gitはなんとなく
# npm i -g hubot coffee-script yo generator-hubot // installってiだけでいいんだね!!
# mkdir -p conohaBot
# cd conohaBot
# yo hubot

なんかいろいろ聞かれますが、"adapterどうする?"ってところだけ"slack"と答えて、ほかはなんか適当にやりました。自分の名前とbotの名前をどうするか、くらいしか聞かれなかった気がします。

hubotの動作確認

hubotのディレクトリ(上記でいうところのconohaBot)にscriptsってディレクトリがあります。その中にexample.coffeeがあるので

# cp example.coffee test.coffee // バックアップを作るクセをつけよう
# vi test.coffee

でtest.coffeeを編集。
なんかコメントアウトめったくそされてて切なくなったのでbadgerのくだりの2行だけコメントアウト。

# bin/hubot

で走らせたあと'Badger'って撃ったら「くっさいアナグマは要らんのやで」って言われました(サンプルプログラムが動いている証拠)

hubotを動作させる目的は達成。
Ctrl+Cなりで抜けだして死んでいただきましょう

slackに召喚する

slackのIntegrationのページ(https://自分のslackのドメイン/services/new)からhubotを選んでなんか適当に名前作っておく。
作成が終わるとAPIトークンが表示される (下記みたいな形式)ので、それをコピーしておく

HUBOT_SLACK_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

コピーしたら先ほどのbin/hubotをvimなりnanoで編集して貼り付け。

// bin/hubotファイル内
export HUBOT_SLACK_TOKEN=xxxxxxxxxxxxxxx // これはどこでもいいけど必須
exec node_modules/.bin/hubot --adapter slack --name "(botのなまえ)" "$@" // 末尾にあったやつをこれに書き換え
# bin/hubot

で起動すると君のslackの適当なchに出現するはず!

永遠にこきつかう

常駐させます。なおかつホットデプロイ(scriptを変更・保存した瞬間にその内容が適用される)させましょう。

# mv bin/hubot bin/hubot.sh //書き換えなきゃいけない理由はよくわからん。あとで調べる
# npm i -g pm2
# pm2 start bin/hubot.sh --watch

監視状態で始まるので、先ほどのtest.scriptの内容を何か適当に変えてみましょう。

 robot.hear /さくらたん/i, (res) ->
   res.send "ほえええええええ"

slackに「さくらたん」と発言してbotがほえええええええって発言したら成功です。

ここからどうする

あんまり考えてないけどredisがあるからいろいろ格納できるし、cronJobでコミケの締め切りの通知とかできるよね

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10