HubotをHipChatで動かしてみる


すごく今さら感はありますが、 HubotHipChat も聞いたことがあるだけで使ったことがなかったので使ってみました。

先日のRubyKaigi2014で「Continuous Delivery at GitHub」の講演を聴いて、「chat opsすごく便利だ」と思ったのがきっかけです。

1. HipChat

とりあえずHipChatのアカウント登録を済ませ、ログイン後、「GroupAdmin」の「Users」、「Add user」でHubot用のアカウントを追加

hubot1

指定したメールアドレスに招待が届くので、ログイン情報を登録。

Hubotアカウントでログイン後、「Account settings」=>「XMPP/Jabber info」を開き、「Jabber ID」をメモ。

2. Hubot

Hubotを動かすには

  • Node.js
  • npm
  • Redis

が必要とのこと。

各々はインストール済みとして進めます。

  • Hubot作成用に適当なディレクトリを作成
mkdir musashi
cd musashi
  • インストール
npm install -g hubot coffee-script
  • Hubot作成
hubot --create hubot

Hubotのベースとサンプルが追加されます

  • HipChat用のモジュールを追加
npm install hubot-hipchat --save
  • 動作確認
./bin/hubot

Hubot> hubot ping
Hubot> PONG

hubot ping と打つと、PONGと返って来ます。

  • 何か機能を作ってみる
    scripts以下にsay.coffeeとしてファイルを設置

hubot say と打つと、バガボンドの武蔵の名言を返してくれるようにしてみました。

  • HipChat連携スクリプトを作成
vi run.sh

#!/bin/bash

export HUBOT_HIPCHAT_JID="xxxxxxxxxxx@xxxxxxxxxxxxxx"
export HUBOT_HIPCHAT_PASSWORD="xxxxxxxxxxxxxxx"
bin/hubot --adapter hipchat
  • 実行権限追加
chmod +x run.sh
  • Hubot起動
./run.sh

この状態で、hubotをroomに招待し、「musashi say」と打つと

hubot3

こんな事を言ったり、

hubot2

こんな事を言ったりします。

今回はとりあえず、HipChatとHubotを連携するところまでをやってみました。

今後は、Hubot経由でデプロイできるように改良していきたいと思います。

新しいことに触れる時間を増やしていかないと。

参考