さくらのクラウドにインストールしたNode-RED環境に2つ目のNode-REDを入れるメモ

さくらのクラウドにインストールしたNode-RED環境に2つ目のNode-REDを入れるメモです。

背景

さくらのクラウドのスタートアップスクリプトでNode-REDをインストールするメモ

おおむね、さくらのクラウドにインストールしたNode-RED環境をベースに、2つ目のNode-REDを入れるにはどうするかということをお伝えします。1つ目のNode-REDはスタートアップスクリプトで入るので手軽だったのですが、ちょっとしたことで悩みました。

Node-REDをインストールしたさくらのクラウドにムームードメインからDNSをつなげるメモ

また、ムームードメインでDNSの紐づけも行っています。

pm2 コマンドに目をつけて同じコマンドを実行→この複数起動は失敗

スタートアップスクリプトでは、pm2で常駐起動させているので、便乗しようと思いました。

リファレンス を見つつ以下のコマンドにしてみました。

pm2 start /usr/bin/node-red -- -v -u root -p 18801 --name "node-red-18801"

/usr/bin/node-red で Node-RED が起動しているので、ポートは 18801 で起動しようとしています。

[PM2][ERROR] Script already launched, add -f option to force re-execution

しかし、実行してみると、すでに起動しているので複数起動ダメと言われてしまいました。 -f で強制起動できそうですが、ちょっと運用大変そうなので別のアプローチにしました。

別のフォルダにNode-REDをインストール

同じコマンドで頑張るのは大変そうなので、完全に別でインストールをすることにしました。

sudo mkdir /root/sub-node-red

新しいフォルダ sub-node-red を作ります。

cd /root/sub-node-red

sub-node-red フォルダに移動します。

npm init

npm の初期準備を行って。

npm install --unsafe-perm node-red

Node-REDのインストールをします。 -g はつけずに、このフォルダ内で動くようにします。

新しく起動するポートを開けておく

firewall-cmd --add-port=18801/tcp --permanent
firewall-cmd --reload

こちらで 18801 ポートを開けておきましょう。

単体起動で試す

一旦、起動してみます。まだ pm2 で常駐はしません。

node /root/sub-node-red/node_modules/node-red/red.js -u /root/sub-node-red -p 18801

直接、 red.js を起動するやり方です。

image

無事起動しまして。アクセスもできました!

ということでいったん終了します。

pm2 で常駐に組み込み

先ほどの実行したコマンドを元に pm2 で起動します。

pm2 start /root/sub-node-red/node_modules/node-red/red.js  --name node-red-sub -- -v -u /root/sub-node-red -p 18801

このようなコマンドになりました。実行すると、先ほどと同じく起動できます。

pm2 save

あとは上記のコマンドで現在の実行状況を pm2 で保存します。

これで作業は完了です!

Node-REDをインストールしたさくらのクラウドにムームードメインからDNSをつなげるメモ

新しく作った Node-RED のほうは、HTTPS通信の設定が出来てません。こちらの記事を見ながら、必要に応じて設定します。私の場合は、このNode-REDをLINE Botに使いたかったので、設定しました。