2014年9月14日日曜日

HubotのIRCアダプタをWindowsにインストールして設定する方法

前回までのあらすじ

南旺理工: HubotをWindowsにインストールする方法
http://nanorico.blogspot.com/2014/09/hubotwindows.html
に従ってHubotをWindowsにインストールすることに成功していることが前提です。

IRCアダプタ


このHubotにIRCアダプタをインストールして設定する方法です。

nandub/hubot-irc · GitHub
https://github.com/nandub/hubot-irc
を参考にしました。

インストール手順


コマンドプロンプトに入ります。

hubot --create myhubot
を実行します。

生成されたmyhubotディレクトリへcdで移動します。

npm install hubot-irc --save && npm install
を実行します。

gitがないというエラー


すると、gitというコマンドがないぜと言われます。

なぜgitなどが要るんじゃあ~! とおもって、hubot-ircのpackage.json
hubot-irc/package.json at master · nandub/hubot-irc · GitHub
https://github.com/nandub/hubot-irc/blob/master/package.json
を見ると、
  "dependencies": {
    "irc": "git+https://github.com/nandub/node-irc.git",
    "log": "1.4.0"
  },
の中の「git+https:」が目につきます。

npmのpackage.jsonにgitリポジトリを指定する方法。 - Sooey
http://journal.sooey.com/195
から察するに、この「git」がgitコマンドを求めているとおもわれます。

Gitをインストール


そこで、GitをWindowsにインストールします。
Git - Downloading Package
http://git-scm.com/download/win
からインストーラをダウンロードします。

今日時点でダウンロードされたインストーラはGit 1.9.4でした。

インストーラを起動します。
普通にWindows用ソフトにありがちなインストーラです。

今回Gitを入れる用途は

  • 自分では別に使わない。
  • gitコマンドへパスが通っていてほしい。

ということですので、インストール中に出てくる質問に対しては、それぞれ以下のように答えます:

  • Select Componentsですべてチェックを外す。
  • Adjusting your PATH environmentでUse Git from the Windows Command Promptを選択。
  • Configuring the line ending conversionsでCheckout Windows-style, commit Unix-style line endingsを選択。


インストール手順(Gitがある状態で)


Gitのインストールが完了したら、あらためて、myhubotディレクトリにおいて
npm install hubot-irc --save && npm install
を実行します。

すると今度は、gitというコマンドがないぜというエラーは出ません。
myhubot\node_modulesディレクトリ内にhubot-ircフォルダがダウンロード・インストールされます。
また、--saveオプションを指定しましたので、myhubot\package.json内のdependencies内にhubot-ircのエントリが自動的に挿入されます。

Hubot IRCアダプタのインストール成功です。

やれやれです。

アダプタ接続


myhubotディレクトリにおいて
bin\hubot -a irc
を実行してみます。

※なお、ここで「bin\」を入れ忘れると、myhubotボットのhubotコマンドではなく、グローバルなhubotコマンドが実行されてしまいますので注意が必要です。なぜなら、グローバルなhubotコマンドにパスが通っているからです。

環境変数がないというエラー


すると、環境変数が定義されていませんぜというエラーが出ます。

まだ定義していませんので当然です。

むしろこのエラーは、HubotがIRCアダプタとちゃんと連携取れたことを示す良い知らせです。

環境変数

hubot-irc/irc.coffee at master · nandub/hubot-irc · GitHub
https://github.com/nandub/hubot-irc/blob/master/src/irc.coffee
に記されているとおり、Hubot IRCアダプタの動作のために、以下の2つの環境変数は必須です:

HUBOT_IRC_ROOMS
ボットを参加させたいチャンネル。
複数のチャンネル名を半角カンマ区切りで与えることもできます。

HUBOT_IRC_SERVER
IRCサーバアドレス。

ほかに以下の環境変数をオプショナルに使うことができます:

HUBOT_LOG_LEVEL
ログのレベル:

  • EMERGENCYまたは0:System is unusable.
  • ALERTまたは1:Action must be taken immediately.
  • CRITICALまたは2:Critical condition.
  • ERRORまたは3:Error condition.
  • WARNINGまたは4:Warning condition.
  • NOTICEまたは5:Normal but significant condition.
  • INFOまたは6:Purely informational message.
  • DEBUGまたは7:Application debug messages.


HUBOT_IRC_SEND_NOTICE_MODE
noticeで発言させるかどうかのフラグ。
noticeで発言させるなら空以外にします。

HUBOT_IRC_NICK
ボットのニック。
定義していない場合には--nameオプションの値が採用されます。

HUBOT_IRC_REALNAME
ボットの「実名」。

HUBOT_IRC_PORT
IRCサーバのポート。

HUBOT_IRC_IGNORE_USERS
無視ユーザー名。
複数のユーザー名を半角カンマ区切りで与えることもできます。

HUBOT_IRC_PASSWORD
パスワード。

HUBOT_IRC_NICKSERV_PASSWORD
NickServパスワード。

HUBOT_IRC_NICKSERV_USERNAME
NickServユーザー名。

HUBOT_IRC_CONNECT_COMMAND
IRCサーバ接続時のコマンド。

HUBOT_IRC_SERVER_FAKE_SSL
自己署名のナンチャッテSSLを認めるかどうかのフラグ。
自己署名のナンチャッテSSLを認めるなら空以外にします。

HUBOT_IRC_SERVER_CERT_EXPIRED
expired certificateを認めるかどうかのフラグ。
expired certificateを認めるなら空以外にします。

HUBOT_IRC_UNFLOOD
floodingを起こさないよう配慮するかどうかのフラグ。
floodingを起こさないよう配慮するなら空以外にします。
あるいは、メッセージ送出間隔をミリ秒単位で指定することもできます。

HUBOT_IRC_DEBUG
node-ircのdebugログを有効にするかどうかのフラグ。
node-ircのdebugログを有効にするなら空以外にします。

HUBOT_IRC_USESSL
SSLを使用するかどうかのフラグ。
SSLを使用するなら空以外にします。

HUBOT_IRC_USERNAME
ユーザー名。

HUBOT_IRC_PRIVATE
/msgに反応しないかどうか、および/inviteに応じないかどうかのフラグ。
/msgに反応しない、および/inviteに応じないなら空以外にします。

HUBOT_IRC_IGNOREINVITE
/inviteに応じないかどうかのフラグ。
/inviteに応じないなら空以外にします。

環境変数を設定


環境変数を設定するには、コントロールパネルで「システム」を開き、「詳細設定」タブで「環境変数」ボタンを押します。

「システム環境変数」の「新規」ボタンを押して、新しいシステム変数を追加。追加したい変数すべてについてこれを繰り返します。

※ただしこの方法では、パスワードを設定したシステム環境変数がこの画面で丸見えです。コマンドプロンプトのsetコマンドでも丸見えです。セキュリティ上良くないかもしれません。セキュリティ上もっといい方法あるかもしれません。

※ただしこの操作手順は、某エンガチョWindows上でのものであり、良い子の皆様がお使いのWindowsでは、違う操作手順かもしれません。

ウチの環境にはZNCが入れてありますので、サーバアドレス・ポート・SSL設定・ユーザー名・パスワードにそれぞれZNCのものを指定しました。

アダプタ接続(環境変数がある状態で)


もう一度、myhubotディレクトリにおいて
bin\hubot -a irc
を実行してみます。

パスワードが無効というエラー


すると、HUBOT_IRC_USERNAMEで指定したユーザー名について、パスワードが無効と言われます。

まだZNCにこのユーザーを作っていませんので、当然です。

むしろこのエラーは、Hubot IRCアダプタがちゃんとZNCと連携取れたことを示す良い知らせです。

IRCアダプタ自体のインストールと設定はこれで終わりました。

ZNCユーザー


今度は、ZNC側にボットユーザーを作ってやる必要があります。

Hubot and ZNC. This is a quick set of tips on how to set up your Hubot to connect through ZNC to your IRC server (freenode, self hosted, etc.). It assumes you already know a bit about ZNC and configuring a Hubot.
https://gist.github.com/stephenyeargin/8465564
を参考にします。

Redisがないという警告


余談ですが、hubotコマンドを実行すると、Redisがねえよとか警告されます。
エラーではないので、そのまま実行は継続されてくれますが、うざいです。

Redisを要らないことにする


とりあえずRedisについては当面は使いませんので、
Hubotの導入とHipChat Adapter設定方法 - Devlog
http://kkurahar.github.io/blog/2013/10/03/hubot-hipchat/
の最後に書いてあることを参考に、myhubot\hubot-scripts.jsonの中身を
["redis-brain.coffee", "shipit.coffee"]
から
["shipit.coffee"]
に変更しておきます。

長くなったのでいったん切ります。

---
南旺理工: WindowsでHubotとIRCとHTTPリクエストの連携を確認する
http://nanorico.blogspot.com/2014/09/windowshubotirchttp.html
へつづきます。

0 件のコメント:

コメントを投稿