Hubotでボット開発はじめてみた
先日のJANOG34 Meetingで「情報共有ツールの情報共有」というセッションを聞いてきた.
「メールだけじゃなくてチャットも使おう.」
「ChatOps(チャットでオペレーション)しよう.」
という話で,サークルや研究室でChatWork使ってる自分にとって,凄く楽しい内容でした.
ChatOpsに関連して,HubotというGitHub社が開発したチャットbotフレームワークが紹介された.
「これ,研究室で使えるんじゃね…」ということで,Hubot開発はじめてみました.
使っているチャットサービス
昨年の11月末からChatWorkを使い始めた.
ただ,未実装のAPIがあり,Hubotを使うのに問題があった.
botの擬人化
セッションの中で「botを女の子に擬人化するとモチベーションが上がる」という話があったので,
まずキャラクターを考えてみた.
(from In Spirited We Love Icon Se by Raindropmemory)
ボスも居るチャットルームなので,萌え過ぎないフリーアイコン探した.
名前はHubotをもじって「Huboco(ひゅぼ子)」に.語呂が悪いのは御愛嬌で.
欲しい機能
じゃあ,実際に研究室で使うに当たり,どんな機能が欲しいか考えてみた.
実装してみる
Hubotで実装に使うCoffeeScriptは,Rubyに近いので抵抗なく始められた.
(Railsで少し書いたことがあったし…)
ただ,最初に実装しようとしたpingで詰まった.
Coffeeだけでは厳しそうで,からpingコマンドを使うしかないみたい.
結局,以前書いてたRubyのpingスクリプトを呼び出すことにして解決.
その後は,標準のスクリプトを見たりググったりしながら,なんとか実装中.
これまでに完成した機能
1週間弱かけて,以下の機能が実装できた.
- pingコマンド
- GitLabの更新を通知
- ゼミの議事をランダムに決める機能
- アニメ情報(今期のアニメ,今日放送のアニメ)を教えてくれる機能
GitHubにも上げてます!
コードレビュー,プルリクお願いしますm(_ _)m
これから
今週のゼミでお披露目して,メンバーの意見を聞きながら改良・機能追加していく予定.
サーバの死活監視については,nagios,zabbix,sensu辺りを使って,アラートをチャットに流すようにしたい.