常田です

最近Bluemixを紹介すると非常にいいねと言われるのが「Node-RED」と呼ばれるGUIベースのプログラミング環境です。一言で言えば、ストリームデータの処理をGUIですることが出来ます。
例えば、Twitterに流れる特定のイベントに対して、整形処理をして別のデータストアーに書き出す。などということが非常に簡単に実現する事が出来ます。

NewImage

Bluemixで紹介されることが多いため専用のツールのように思われる方もいるかもしれませんが単独で動くことができるOpenSourceのツールです。

今回はこのエディタを、SoftLayer上の仮想サーバに導入してみたいと思います。
最終的には、簡単に実行出来るように”プロビジョニングスクリプト”にして整理したいと思います。

環境

  • SoftLayer上の仮想サーバ
  • OS:Ubuntu14.04

Node-RED の導入

sudo apt-get install nodejs npm -y
ln -s /usr/bin/nodejs /usr/bin/node
npm install -g node-red

これで導入が出来ます

パスワードの設定

mkdir /root/.node-red
cp -p /usr/local/lib/node_modules/node-red/settings.js /root/.node-red/
sed -ri 's\//httpAdminAuth\httpAdminAuth\g' /root/.node-red/settings.js  #default "user"'s password "password"

標準ではBasic認証が有効になります。この場合には、ログインユーザ名[user]でパスワードが[password]に該当します。実際には設定内容の中で記述してますので任意の文字列に変更して下さい。
またパスワードのハッシュは以下で作ることが出来ます。

## password generate
cd /usr/local/lib/node_modules/node-red
node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" password

自動起動の設定

## start node-red from pm2
npm install -g pm2
pm2 start `which node-red`
pm2 show 0

やはり自動的に起動している方が嬉しい事が多いですし今回のようにNode-REDを使いたい場合には最初から起動しておくようにします。今回は単純に pm2 で起動しているだけですがメモリ等を指定したい場合にはオプションをつけると良いです。

接続

この状態で、パブリックのIPアドレスに対して http://XXXXXX:1880 でアクセスると画面が表示されます。初期の状態では[user/password]でログインすることが出来ます。

NewImage

次回はもう少しNode-REDの起動時のオプションの変更や必要となるノードの追加方法なども見て行きたいと思います。