最近、チャットツールをHipChatからSlackに乗り換えました!
Slackとは?
いわゆるチャットツールです。技術者向け。
SlackはHipChatと違ってUIがリッチで分かりやすいです。オシャレ!
HipChatと同じくAPIを備えており、GitHubやAsanaなど様々なサービスと連携させる事ができます。
そして、タイトルにもあるHubotとも連携させる事ができます。
Hubotとは?
チャット上で使えるボットです。Node.jsで書かれています。GitHub社が開発しました。
ボットというとTwitterのボットを想像するかもしれませんが、基本は同じです。
ボットに向けて、決まった書式でメッセージを送ると、そのメッセージに応じた処理を行います。
例えば、Jenkinsのビルドを実行したり、アプリケーションをデプロイしたり、ネコ画像を拾ってきたりします。
Hubotを導入するメリット
従来は個別のターミナル内で行っていたタスク指示が、チャットウインドウに移ります。
この事のメリットは主に二つあります。
- 作業ログが残る
- チームとのコミュニケーションと作業が統合される
ビルドやデプロイなどは、いつ誰がやったのか残っている事が望ましいです。
また、チームワークにおいてはそのタスクが属人的にならないようにする事が重要です。
タスク実行をチャットウインドウから行う事で、直接的な作業が会話にシームレスに混ざります。
それによって、デプロイなどの手順や気をつけるべき点が自然と共有される形になります。
このようにチャットを使ったサーバ運用をChatOpsと呼びます。
Herokuではなく自前サーバのHubotと連携させたい
Slack用Hubotプラグインがあるので、書かれている手順に従えば簡単に設定できます。
日本語の情報もnanapiなどに掲載されています。
しかし、どれもHubotをHerokuにデプロイする場合の手順です。
いやいや、俺は自前サーバにHubotを稼働させる場合の手順が知りたいんだ。
という訳で、このページでは自前ホストのHubotとSlackを連携させる手順について説明します。
Hubotのインストール
既に自前サーバで動作している方は読み飛ばして下さい。
- Hubotをインストール
$ npm install -g hubot coffee-script
- botの作成
$ hubot --create [path_name] $ cd [path_name]
- Slack用アダプタのインストール
$ npm install hubot-slack --save
- 試しにローカルで起動
$ ./bin./hubot
Slackとの連携設定
Slackの以下のページから、環境変数に設定する値を取得します。
それぞれ、環境変数に設定します。
$ export HUBOT_SLACK_TOKEN=<token>
$ export HUBOT_SLACK_TEAM=<team>
$ export HUBOT_SLACK_BOTNAME=<bot name>
Hubotは、HTTPインターフェースも備えています。これはデフォルトで8080
ですが、PORT
の環境変数を指定することで変更できます。
$ export PORT=9999
ファイヤーウォールの中にいる場合は、このポートで外からhubotにアクセスできるようにしておきましょう。
EC2の場合はセキュリティグループを確認しておきましょう。
そして、あなたのHubot HTTPインターフェースへのURLをSlackのHubot URLの欄に記入します。
これで、SlackはHubotへのメッセージをこのHTTPインターフェースに送信するようになります。
さあ、Hubotを起動してみましょう。
$ ./bin/hubot --adapter slack
成功です!
Enjoy ChatOps!
“自前ホストのHubotとSlackを連携させる方法” への2件のフィードバック