24
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Heroku上でHubotを動かす

Last updated at Posted at 2014-07-19

hubotをheroku上にデプロイして動かしてみようと思います。
連携するチャットツールはSlackです。

Herokuの準備

imgres.jpg

アカウントの作成と各種ツールの設定をします。

Herokuアカウントの作成

公式サイトでアカウントをつくります。

Heroku Toolbeltのインストール

こちらからHerokuを操作するためのCLIツールをインストールする。

インストールしたらバージョンを確認します。

% heroku version
heroku-toolbelt/3.9.1 (x86_64-darwin10.8.0) ruby/1.9.3

Herokuログイン

Heroku Toolbeltからログインします。heroku loginコマンドで対話形式で答えていき、メールアドレスやパスワード、SSH鍵を登録していきます。

% heroku login

nodeインストール

Hubotはnode製なので入れておきます。

node-js-logo.png

公式ページよりパッケージをダウンロードし、インストールする。

homebrewでインストールしている人もいますが、とりあえず今回は公式から落とします。

↓こんな感じの画面が出ます。
mode-npm-osx.jpg

インストールが終わったらバージョンを確認する。

% node -v
v0.10.29

% npm -v
1.4.14

Hubotアプリの作成

hubot.png

事前準備

npmhubotcoffee-scriptをインストールします。

% npm install -g hubot coffee-script

プロジェクトの作成

Herokuにデプロイするプロジェクトを作成します。
下記コマンドでHubot用のプロジェクトディレクトリを作成します。
※カレントディレクトリに注意。

% hubot --create mybot

Slack Adapter

次にSlack Adapterを入れます。--saveオプションを付けることで、package.jsonに記述されます。

% cd mybot
% npm install --save hubot-slack

また、Procfileに使用するadapterのデフォルト値が記載されているのでこちらも変更しておく。

Procfile
web: bin/hubot -a slack

Gitリポジトリの作成

Herokuへのデプロイはgitにより行うため、リポジトリを作成し登録します。

% git init
% git add .
% git commit -m "initial commit"

Herokuへのデプロイ

Dynosの作成

heroku createコマンドで Dynos を作成する。
DynosはHerokuにおける仮想マシンのことを指しているみたいです。

% heroku create hogebot

Creating matsbot... done, stack is cedar
http://hogebot.herokuapp.com/ | git@heroku.com:hogebot.git

ダッシュボードを見ると確かにできています。(らくちんやね)
また、この時作成されたURLはDynosの環境変数と、Slack側の設定に入れる必要がある。

環境変数の設定

SlackのIntegrationのところに記載してあるパラメータを確認する。

slack-hubot-1.png

heroku config:addコマンドでパラメータを変更する。

なお、この時変更されるDynosは.gitにリモートリポジトリとして登録されているDynosになる。
heroku createで作成した際には自動でリモートに登録されるが、管理画面から作成したり、作りなおしたりすると異なるDynosが登録されていることがあるので注意すること。

% heroku config:add HEROKU_URL=http://hogebot.herokuapp.com		← Dynos毎に生成されるURL
% heroku config:add HUBOT_SLACK_TOKEN=xDagElsrMxDhAiECQ9DqJGpr
% heroku config:add HUBOT_SLACK_TEAM=hogehoge
% heroku config:add HUBOT_SLACK_BOTNAME=hogebot

デプロイ

git pushでデプロイする。

% git push heroku master

Slackの設定

最後にSlack側のHubot IntegrationにHerokuのURLを登録する。
今回は http://hogebot.herokuapp.com になる。

slack-hubot-2.png

動作確認

Slack上で @hogebot: ping とかやって確認してみてください。

感想

Herokuは敷居が高い印象でしたが、使ってみるとデプロイ周りが超カンタンでした。
自動でリモートリポジトリが登録されているなど、仕様はちゃんと理解する必要がありそうです。

24
24
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
24
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?