実行環境 #
daab は direct サーバへ接続するクライアントとして動作します。 実行環境を外部に公開する必要はなく、ファイアーウォール内でも動作します。
動作環境についてはさまざまなパターンがあります。以下に、典型的なものを作業例とともに示します。
事前の準備として、チュートリアルなどを参考に HUBOT_DIRECT_TOKEN
に設定する値を取得してください。
実機 #
実機に直接インストールするパターンです。動作させるマシンにログインしてセットアップします。
想定される用途例:
- 社内で管理されたマシンからイントラネットに接続する。
- Raspberry Pi などからセンサー情報を送信する。
- 社外のイベントで設置したマシンで情報提供する。
daab では通常起動の他に、以下の手軽な方法を提供しています。
daab forever #
daab SDK は内部で forever を参照しており、以下の手順でバックグラウンド実行させることができます。 node.js が落ちた場合や scripts フォルダが変更された場合、自動的に再起動します。
$ export HUBOT_DIRECT_TOKEN=<access_token>
$ bin/hubot start
その他のコマンドは以下の通りです。
$ bin/hubot stop
バックグラウンド実行を終了します。$ bin/hubot restart
強制的に再起動します。$ bin/hubot status
起動状態の詳細情報を表示します。$ bin/hubot logs
バックグラウンド動作中のログを表示しつづけます。$ bin/hubot run
フォアグラウンドで実行します。
仮想マシン #
レンタルサーバや VPS 上に Node.js をセットアップして動作させるパターンです。
Vagrant #
daab SDK には Vagrantfile のサンプルが梱包されており、Vagrant をインストールした後は、以下の手順で仮想マシンを起動させることができます。
$ vagrant up
後々の ssh コマンド経由でSSH接続する作業のために、設定ファイルを生成します。
$ vagrant ssh-config > ssh-config
Chef #
仮想マシンへのインストール・環境構築作業を自動化するものとして、Chef があります。
ツールは、ChefDK を利用すると必要なものが一通りそろいます。 また、knife-solo も利用します。
$ chef gem install knife-solo
ツール類の準備後、cookbook の用意をします。daab SDK には Berksfile のサンプルが梱包されており、以下のコマンドで用意できます。
$ berks vendor cookbooks
準備ができれば、仮想マシンでの環境構築を実行できます。
$ knife solo prepare vagrant@default -F ssh-config --bootstrap-version 11.16.4-1
$ vi nodes/default.json
| run_list プロパティ に以下を追加。
| "recipe[yum]",
| "recipe[redisio]",
| "recipe[redisio::enable]",
| "recipe[daab]"
$ knife solo cook vagrant@default -F ssh-config
コンテナ #
docker 上の Node.js コンテナで動作させるパターンです。
docker #
daab sdk には Dockerfile のサンプルが梱包されており、以下の手順で実行させることができます。
まずは、イメージを作成します。
$ docker build -t lisb/daab .
そのイメージをベースに daab を起動します。
$ docker run --name daab -d -p 8080:8080 --link daab-redis:redis --env HUBOT_DIRECT_TOKEN=<access_token> --env REDIS_URL=redis://<ip address>:6379 lisb/daab
また、Redis は以下の手順で実行しておきます。(docker hub/redis より)
$ docker run --name daab-redis -d -p 6379:6379 redis redis-server --appendonly yes
(※ OS X や Windows の環境では boot2docker で試すことができます。このとき Redis の接続先 IP は boot2docker ip
コマンドで取得してください)
PaaS #
Platform as a Service 上の Node.js で動作させるパターンです。
Heroku #
daab SDK には Procfile のサンプルが梱包されており、以下の手順で heroku にデプロイさせることができます。
$ heroku login
$ heroku create
$ heroku config:set HUBOT_DIRECT_TOKEN=<access_token>
$ git push heroku master
また、Redis は以下の手順で追加しておきます。
$ heroku addons:add rediscloud
Cloud Foundry #
以下の手順で Cloud Foundry を利用している PaaS にデプロイすることができます。
$ cf api https://api.eu-gb.bluemix.net
$ cf login
$ cf set-env HUBOT_DIRECT_TOKEN <access_token>
$ cf push app_name
詳細は、IBM Bluemix の Cloud Foundry コマンド・ライン・インターフェースを使用したコーディングの開始 をご参照ください。