Hubotと連携可能なチャットサービスは多々ありますが、今回は、「Kandan」というOSSのチャットアプリを利用する方法を紹介します。とはいえ、サービスとして提供されているHipChatやSlackなどは品質が高く、簡単に利用開始でき、運用の手間も掛からないので、特別な理由がない限りはチャットサービスの利用を検討することをお勧めします。
Kandanのソースコードは下記GitHub上から入手できます。
最新のKandanだと、deviseなどのGemのバージョンが上がってしまい、うまく認証が機能しなかったので「v1.2」時点のタグをチェックアウトし、進めていきます。
$ git clone https://github.com/kandanapp/kandan.git $ cd kandan $ git checkout v1.2 $ sudo apt-get install ruby1.9.1-dev ruby-bundler libxslt-dev libxml2-dev libpq-dev libsqlite3-dev gcc g++ make nodejs
$ gem install execjs
今回は手順簡略化のため、Database adapterをPostgreSQLからSQLiteに変更し、bundlerでGemをインストールします。developmentとtestのGemは不要なので、除外してインストールしました。
$ vim Gemfile
- # Database adapters
- -gem 'pg'
- +gem 'sqlite3'
$ bundle install --without development test
DBはSQLiteを使うことにしたので、vimを軌道して「database.yml」に以下を追加します。
$ vim config/database.yml
- production:
- adapter: sqlite3
- database: db/production.sqlite3
- pool: 5
- timeout: 5000
以下のコマンドでデータベースを作成します。
$ RAILS_ENV=production bundle exec rake db:create db:migrate kandan:bootstrap
「config.serve_static_assets」の値を「true」にしてプリコンパイルを有効にし、プリコンパイルを実施しておきます。
$ vim config/environments/production.rb
- # Disable Rails's static asset server (Apache or nginx will already do this)
- - config.serve_static_assets = false
- + config.serve_static_assets = true
$ RAILS_ENV=production bundle exec rake assets:precompile
ここまででチャットアプリを起動する準備が整いましたので、起動しましょう。
$ bundle exec thin start -e production
起動後、ユーザーサインアップすると以下のように表示されます。
ちなみに、管理者アカウントはデフォルトで「Admin」、パスワードは「kandanappadmin」です。
次に、KandanにHubotアカウントを作成し、Hubotとつなぐためのアクセスキーをあらかじめ取得しておきます。
# Hubotアカウント作成 $ RAILS_ENV=production bundle exec rake kandan:boot_hubot # アクセスキー取得 $ RAILS_ENV=production bundle exec rake kandan:hubot_access_key Your hubot access key is YOUR_KANDAN_ACCESS_KEY
HubotとKandanを連携するのに「hubot-kandan」というKandan用アダプターを利用します。
Kandanに合わせ、動作が確認できているv2.4.7のHubotを取得し、環境を構築します。
$ wget https://github.com/github/hubot/archive/v2.4.7.zip $ unzip v2.4.7.zip $ cd hubot-2.4.7 $ npm install $ make package $ cd hubot $ git clone https://github.com/kandanapp/hubot-kandan.git node_modules/hubot-kandan $ npm install faye $ npm install ntwitter
起動時に「Invalid version: "1.0"」とエラーが出てしまうので、「node_modules/hubot-kandan/package.json」の「"version"」を「"1.0.0"」に修正します。
- "name": "hubot-kandan",
- - "version": "1.0",
- + "version": "1.0.0",
- "author": "kandan",
Kandanと連携するための環境変数を設定します。
export HUBOT_KANDAN_HOST=YOUR_KANDAN_HOST # Portが80以外であれば設定する export HUBOT_KANDAN_PORT=YOUR_KANDAN_PORT # 先ほど取得したアクセスキー export HUBOT_KANDAN_TOKEN=YOUR_KANDAN_ACCESS_KEY # info以外に設定する場合 export HUBOT_LOG_LEVEL=debug
adapterに「kandan」を指定して実行します。
$ ./bin/hubot -a kandan
先ほど起動したKandanにアクセスすると、Hubotがチャットに参加しているのが確認できます。
「@hubot pug me」でHubot宛てにパグ画像を要求したり、「ping」「ship it」などを投稿し、Hubotが反応するか確認してみましょう。
今回は、HubotのインストールからOSSのチャットアプリをインストールし、チャット上からHubotと対話するまで行いました。
次回からは、もう少し実践的に、HubotをGitBucketやJenkinsなどと連携させて、Hubotを中心とした開発スタイルを紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.
Test & Tools 鬯ョ�ォ�ス�ェ髯区サゑスソ�ス�ス�ス�ス�コ髣包スオ隴∵コキ�ク�キ�ス�ケ隴趣ス「�ス�ス�ス�ウ鬩幢ス「�ス�ァ�ス�ス�ス�ュ鬩幢ス「隴趣ス「�ス�ス�ス�ウ鬩幢ス「�ス�ァ�ス�ス�ス�ー