Raspberry PiのRocket.Chatサーバでhubotを動かすには

先日、snapを使ってRocket.Chatサーバを構築しました。

Rocket.Chat上でbotの実行や開発ができるように、Hubotをインストールしてみたいと思います。


snap版Rocket.chatサーバのHubot環境構築手順

基本的にこちらの公式ドキュメントを参考に致しました。

node.jsでhubotを動かす方法と、dockerで動かす方法があるようです。Raspberry Piで動かすことを考慮して、使用するリソースが少なそうな、node.jsで動かそうと思います。


bot用ユーザの追加

  1. Rocket.Chatサーバへ管理ユーザでログインします。
  2. 管理→ユーザー→右上の「+」ボタン、ユーザの追加をクリックします。
  3. 名前、ユーザー名、メールアドレス、パスワードを入力します。
  4. 必ず、役割の選択で「bot」を選択しておきます。
  5. 「保存」ボタンをクリックして正しく作成されたかどうか確認します。

hubot-rocketchat-boilerplate本体のインストール

SSHでubuntuにログインします。hubotのインストールと実行は、rootではなく、通常のubuntuユーザで行いました。

  1. npmをインストールします。
  2. gitコマンドでファイルをクローン後、npm installで必要なモジュールをインストールします。
  3. 公式ドキュメントでは.envファイルを作成するとありますが。後でsystemdで自動起動したいため、bin/hubotファイルを編集しました。

    次のような内容です。
  4. この状態でbin/hubotを実行すると、hubotがRocket.Chatサーバにログインし、何か命令を受け付ける状態になります。既定でscriptsに入っているexample.jsとversion.jsの実行が可能です。「bot rc version」でversion.jsが実行されるようです。

Hubot Scriptsのインストール

GitHubのHubot Scriptsで公開されているbotをインストールするには?

実験的に、hubot-helpとhubot-shipit2、2つのbotをインストールしてみようと思います。

  1. npmで対象のbotをインストールします。
  2. external-scripts.jsonを編集します。

    npmでインストールしたbotを並べて書く感じのようです。

bot helpでインストールされているbotを確認できるようになりました。ship itは実行してからのお楽しみです(たまに表示されない場合もありますが)。


Hubotの自動起動

最後にHubotが自動起動するように、systemdを設定しておこうと思います。

  1. /etc/systemd/system/rocketchat_hubot.serviceファイルを作成します。

    次のような内容です。
  2. systemdに設定変更を反映し、自動起動するようにしました。

これでRaspberry Piを起動すると、snapdの後にhubotが自動起動するようになりました。

8番で作成したbin/hubotスクリプトに、Rocket.Chatサービスが起動するまでsleepする処理が入っていますので、うまく順番に起動するかと思います。

Systemdの設定はオリジナルですが、Rocket.ChatをHubotが待つ処理は、公式ドキュメントを参考にさせて頂きました。


以上で、Raspberry Piでbot処理を行えるようになりました。

スクリプトを作成することで、何かRaspberry Piに命令すると、何か動作したり、メッセージを返したりする処理をさせることができます。

基本的に、外部のサーバに依存せず、Raspberry Piのみでサーバが完結していますので、ご家庭や職場などのローカルなLAN環境でも動かせるかと思います。

さて。どんなbotを作りましょうか?

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク