WebhookやHubotを使ってチャットとSubversion、Redmine、Jenkinsを連携させる基本設定とは:OSSチャット基盤RocketChat入門(終)(5/5 ページ)
OSSのチャット基盤であり、Dockerコンテナとして簡単に導入できるRocketChatを使った、コミュニケーション基盤の作り方を学ぶ連載。最終回は、RocketChatと他のアプリケーション(Subversion、Redmine、Jenkins、Zabbix、fluentdなど)と連携させる方法を紹介します。
Hubot+Jenkinsでチャットからビルドしてみる
Hubot環境ができたら、RocketChatとHubotを連携させて「チャットからJenkinsにビルドさせる」という簡単なChatOpsを体験してみましょう。
以下、RocketChat+Hubot+Jenkinsの連携イメージです。
HubotがログインしているRocketChatのチャンネルで、Hubotにビルドを依頼します。すると、「jenkins.coffee」というHubotスクリプトから、Jenkinsのビルドを実行します。
設定
設定はJenkinsのビルドを行う「jenkins.coffee」をHubotスクリプトとして追加するだけです。「jenkins.coffee」という記述を「hubot-scripts.json」に追加してください。なお「jenkins.coffee」は、Hubotコンテナの「node_modules」にすでに用意されています。
# vi hubot-scripts.json ["Jenkins.coffee"]
チャットからビルドする
それでは実際にRocketChatからJenkinsのジョブをビルドしてみましょう。ここでは、「Sample01」というジョブをビルドします。RocketChat画面から「#hubot」チャンネルを選択し、「@rocketchatbot: jenkins build Sample01」と投稿してください。以下のように、HubotがJenkinsのジョブをビルドしてくれます。
なお、「jenkins.coffee」ではビルドを含め以下操作が可能ですので、ぜひ試してみてください。
コマンド | 構文 | 説明 |
---|---|---|
b | @botname: jenkins b [ジョブ番号] | Jenkinsのジョブをビルドする(ジョブ番号指定) |
build | @botname: jenkins build [ジョブ名] | Jenkinsのジョブをビルドする(ジョブ名指定) |
@botname: jenkins build [ジョブ名] [パラメータ] | Jenkinsのジョブをビルドする(ジョブ名とパラメータを指定) | |
list | @botname: jenkins list | Jenkinsジョブの一覧を表示 |
describe | @botname: jenkins describe [ジョブ名] | Jenkinsジョブの説明を表示 |
last | @botname: jenkins last [ジョブ名] | Jenkinsジョブの最終実行結果を表示 |
その他の連携事例(Zabbix、RSS、fluentd)
今回は、Webhookを使ったSubversionやRedmineとの連携、Hubotを使ったJenkinsとの連携を紹介しました。しかし、今回紹介した内容はあくまで一例であり、RocketChatとアプリケーションを連携は多岐にわたります。以下、その他の事例を簡単に紹介します。
Zabbixと連携させて監視メッセージをチャンネルに投稿
ZabbixからWebhook URLにメッセージを送信する「zabbix-slack-alertscript」というシェルスクリプトがあります(もともとはSlack用)。Zabbixのmedia typeに追加すれば、監視メッセージをチャンネルに投稿できます(参考)。
また、「hubot-zabbix-notifier」というHubotスクリプトもあり、Hubotを使った方法でも実現可能です(参考)。
Hubotスクリプト「hubot-rss-reader」でニュースフィード(RSS)を読む
Hubotには「hubot-rss-reader」というHubotスクリプトあります。「hubot rss add (URL)」と投稿するとチャンネルにRSSを追加でき、RocketChatと連携させればニュースサイトやブログなどの情報をチャットから拾えます(参考)。
fluentdと連携させてログ情報をチャンネルに投稿
fluentdからログ情報をチャットツールに流すというのはよく聞く話です。fluentdのプラグイン「fluent-plugin-curl」を使えば、curlコマンドでWebhookを使った連携が可能です(参考)。
また、Slack用へ通知を行う「fluent-plugin-slack」というプラグインも存在します(参考)。
環境に合わせたチャット基盤の導入を
本連載では3回にわたり、OSSチャット基盤RocketChat入門の記事を執筆してきました。本連載は今回で最終回です。本連載を通じて、RocketChatおよびチャットツールに興味を持っていただけたら幸いです。ご自身の環境に合わせたチャット基盤の導入を検討してみてはいかがでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- IBMとSlackが提携、“Watson”搭載Slackツールを開発可能に
IBMとSlackが、Webコミュニケーションツール「Slack」とコグニティブ技術「Watson」の連携取り組みで提携。Watsonのコグニティブ技術を融合したSlackツールなどを開発していく。 - 実録! チーム開発が捗り過ぎるSlack+GitHub+Trelloの使い方
スタートアップではいかにお金を使わずにプロダクトを開発するかは成功につながる大きなポイントとなる。コストを掛けずにプロダクトを作っていく上で、導入すべきツールをどのように使うかを数回に分けて紹介。今回は、開発プロジェクト向けチャットツール「Slack」の特徴を解説しプロジェクト管理ツール「Trello」や「GitHub」と組み合わせた活用事例を紹介する。 - HubotとZabbixを連携すればワンオペ監視でも寂しくない
GitHub社が開発しているbotフレームワークHubotを使ってチャットアプリ上でチーム開発をいかに効率化していくかを解説していきます。今回は、Zabbixをインストールして監視設定を行い、Hubotと連携してサーバーからの障害検知をチャットに通知する方法などを紹介します。