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.