1. 概要
x1-debian-builder を使用してルートファイルシステムを構築し、
Armadillo IoT ゲートウェイ G3上でNode-REDを自動起動させる手順を紹介します。
Node-REDの使用方法などは以下のブログを参照してください。
https://users.atmark-techno.com/blog/53/3986
2. ルートファイルシステムに構築手順
x1-debian-builderをATED7上にダウンロードします。
以下の場所からx1-debian-builderを取得してください。
https://download.atmark-techno.com/armadillo-x1/x1-debian-builder/
wget https://download.atmark-techno.com/armadillo-x1/x1-debian-builder/x1-debian-builder-[version].tar.gz
ダウンロードしたx1-debian-builder-[version].tar.gzを展開します。
tar zxvf x1-debian-builder-[version].tar.gz
展開したファイルは以下の構成となっています。
5つのモデルのリソースと、ビルドスクリプトが存在します。
x1-debian-builder-[version]/ | |--- aiotg3_resouces |--- aiotg3l_resources |--- ax1_resource |--- a600_resources |--- degugw_resources |--- build.sh
Node-REDをインストールする
今回はArmadillo IoT ゲートウェイ G3での実行方法を紹介しますが、他の機種でも実行できます。
aiotg3_resources/resourcesに移動し、
fixupの最後に以下の行を追加してください。
atmark@atde7:~/x1-debian-builder-v2.1.1/aiotg3_resources/resources$ vi fixup <省略> #deploy node-red upon root file system curl -sL https://deb.nodesource.com/setup_13.x | sudo bash - #Adding Nodesource apt repository apt-get install -y nodejs #Install nodejs from added source node --version #Display node version npm install -g --unsafe-perm node-red #Install node-red by npm
Node-REDを自動起動させる
Armadillo IoT ゲートウェイ G3で、systemdの設定を行うことでNode-REDを自動起動できます。
詳細は以下のブログを参照してください。
https://users.atmark-techno.com/blog/6938/2865
ですが今回は、Node.jsのPM2を用いてNode-REDを起動する手段を使います。
先程と同じく、fixupに以下の行を追加してください。
atmark@atde7:~/x1-debian-builder-v2.1.1/aiotg3_resources/resources$ vi fixup <省略> #start up node-red at boot npm install pm2 -g #Install PM2 by npm pm2 start /usr/lib/node_modules/node-red/red.js -- -v #Add node-red to PM2 development environment pm2 list #Check node list adding to PM2 pm2 save #Add PM2 run at boot pm2 startup
ルートファイルシステムにNode-REDのデプロイ情報を設定
Webサーバーで、Node-REDをデプロイする際のnodeのフローを書いてから "Deploy"をクリックすると
jsonファイルとしてArmadilloにデータが書き込まれます。
書き込まれたデーターは/root/.node-red/に存在します。
/root/.node-red/ |--- flows_armadillo.json |--- lib |--- node_modules |--- package-lock.json |--- package.json |--- settings.js
量産する時やバックアップする時はnode_modules以外のファイルとディレクトリを保持すれば、
Node-REDを再起動する時に、データがロードされます。
以下の3つ手順でルートファイルシステムを構築する際に、上記ファイルを入れ込むことで
複数のArmadilloに同じNode-RED設定を反映することが出来ます。
/root/.node-red/
のflows_armadillo.json, lib, package-lock.json, package.json, settings.js
を
node-red.tar.gz(ファイル名は任意)に圧縮します。
root@armadillo:~# cd /root/.node-red/ root@armadillo:~/.node-red# tar zcvf node-red.tar.gz flows_armadillo.json lib package-lock.json package.json settings.js root@armadillo:~/.node-red# ls node-red.tar.gz node-red.tar.gz
node-red.tar.gzをATDE上の
x1-debian-builder-[version]/[model]_resources/resources
にコピーします。fixupに以下の行を追加してください。
atmark@atde7:~/x1-debian-builder-v2.1.1/aiotg3_resources/resources$ vi fixup <省略> #migrate database tar zxvf /resources/node-red.tar.gz -C /root/.node-red/ #Migrate database cd /root/.node-red #Locate to project directory npm install #Install necessary palette
ビルドする前にfixupを保存し、編集した内容を確認してください。
ビルドする
./build.sh [model]でモデルを指定出来ますがデフォルトはaiotg3となっています。
ビルド完了まで少々時間がかかります。
atmark@atde7:~/x1-debian-builder-[version]$sudo ./build.sh
ビルドが完了すると以下のファイルが出来上がります。
debian-stretch-armhf_aiotg3_[日付].tar.gz
このファイルを用いてArmadilloに展開すれば、
Node-REDが自動起動し、設定したNode-REDのデータをロードし動作するようになります。
展開方法は、「 ルートファイルシステムの書き換え」を参照してください。