連載
» 2016年12月08日 05時00分 公開

WebhookやHubotを使ってチャットとSubversion、Redmine、Jenkinsを連携させる基本設定とはOSSチャット基盤RocketChat入門(終)(5/5 ページ)

[伴地慶介,三菱総研DCS]
前のページへ 1|2|3|4|5       

Hubot+Jenkinsでチャットからビルドしてみる

 Hubot環境ができたら、RocketChatとHubotを連携させて「チャットからJenkinsにビルドさせる」という簡単なChatOpsを体験してみましょう。

 以下、RocketChat+Hubot+Jenkinsの連携イメージです。

図22 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のジョブをビルドしてくれます。

図23 RocketChatからJenkinsのジョブをビルド

 なお、「jenkins.coffee」ではビルドを含め以下操作が可能ですので、ぜひ試してみてください。

表2 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およびチャットツールに興味を持っていただけたら幸いです。ご自身の環境に合わせたチャット基盤の導入を検討してみてはいかがでしょうか。

前のページへ 1|2|3|4|5       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。