AzureのVirtual MachinesでNode-REDを動かすメモです。
Virtual MachinesでUbuntu Serverをつくる
Microsoft Azureで実行する : Node-RED日本ユーザ会
こちらの記事で実現できますが、今回自分が作業した内容をメモします。
リソースグループの作成
今回用のリソースグループを作ります。
- リソースグループ名
- 好きな名前で
- リージョン
- 好きなリージョンで、私は東日本にしました。
リソースの作成をクリックします。
Virtual MachinesでUbuntu Serverを選択
新規リソースを作るページで Ubuntu で検索して、Ubuntu Server 18.04 LTS を選択します。
- リソースグループ
- 先ほど作成したもの
- インスタンスの詳細
- 仮想マシン名
- 好きな名前でよいですが、私はリソースグループ名に -machine をつけたものにしました。
- 地域
- 好きな地域で。私はリソースグループのリージョンを東日本にしていたので合わせました。
- 可用性オプション
- 冗長なし。そのまま。
- イメージ
- Ubuntu Server 18.04 LTS
- 先ほど、イメージを選択してくれば、入力されてるはず
- 仮想マシン名
サイズが大きめのものになっているので、変更します。
こちらのページでは
「サイズ」の手順で、仮想マシンのサイズを選択します。 単純な Node-RED のインスタンスをたてる場合、 node.js はシングルスレッドで動作するので、マルチコアのサイズを選択しても恩恵を得られないことにご留意ください。 初めての場合は、「すべて表示」をクリックし、A1 Basicを選択すると良いでしょう。
となっていますが、もうちょい強めのにしたかったので
吟味しまして、
Standard B1s にしました。感覚的には、もう一段下がった B1ls vCPUv 1つ、RAM 0.5 GB も行ける気がします。
管理者アカウントはパスワードのほうで。受信ポートの規則は、HTTP・HTTPSをあけときます。
確認と作成で、作る内容を確認したあと、作成します。
シリアルコンソールでログイン
あえて、SSHポート開けずにブラウザ上からシリアルコンソールで設定します。
シリアルコンソールの詳細については、 Linux 用 Azure シリアル コンソール | Microsoft Docs をご覧ください。
シリアルコンソールをクリックします。
しばらく待ちます。
ログインするユーザー名は、さきほど管理者アカウントで設定したユーザー名。
パスワードを聞かれたら、丁寧に右クリックメニューでペースト(貼り付け)しましょう。
Node-RED のセットアップ
こちらの「Node-RED のセットアップ」を進めます。
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs build-essential
まずこの2つのコマンドを実行してNode.jsインストール。
sudo npm install -g --unsafe-perm node-red
こちらのコマンドでNode-REDをインストールします。
余談「sudo npm install -g node-red」
これでもインストールできるようなんですが、
こんなエラーが出て気持ち悪いので、上記のコマンドにしました。「sudo npm install -g –unsafe-perm node-red」だと素直に入る。
Node-REDが自動的に起動させる
引き続きコマンド実行です。
sudo npm install -g pm2
pm2を入れて。
pm2 start `which node-red` -- -v
pm2 save
pm2 startup
自動起動するように設定を作ります。
pm2 startup後に、上記のようにさらにコマンドを実行するように促されるので、従って実行して下さい。
sudo reboot
で再起動します。
ネットワークで1880ポートを開ける
再起動している間に、ネットワークに移動して、こちらに、書かれているネットワークで1880ポートを開ける作業をします。
「設定」の手順で、「ネットワーク セキュリティ グループ」を新規作成し、以下の内容で、新しい「受信規則」を追加します。 (訳注: このほか、適宜「Virtual Network」や「サブネット」を作成してください。)
名前: node-red-editor
優先度: 1010
プロトコル: TCP
ポート範囲: 1880
に従って、
こんな形で設定します。
- 名前: Node-RED_Port_1880
- 優先度: 1010
- プロトコル: TCP
- 宛先ポート範囲: 1880
追加を押します。
アクセスしてみる
概要に書かれているパブリックIPアドレスへ1880ポートをつけてブラウザからアクセスします。
http://<パブリック IP アドレス>:1880/
このようなアドレスです。
無事起動しました。
パスワードを設定する
2021/06/21 node-red admin hash-pw
のパスワード生成に変更しました。
このままだと、だれでもログインできてしまうのでNode-REDにもパスワードを設定します。
セキュリティの記事を参考に
node-red admin hash-pw
というコマンドを打ち込んで、パスワードを生成します。
実行して出てきたハッシュ値をメモしておきます。
Node-RED の setting.js で認証設定
セキュリティ : Node-RED日本ユーザ会を参考に、ユーザ名/パスワードによる認証を設定します。
sudo nano ~/.node-red/settings.js
nanoで編集します。
エディタおよび管理APIでのユーザ認証を有効化するためには、 設定ファイルのadminAuthプロパティのコメントアウトを解除します。
とあるように、
このように編集して保存します。
再起動
設定を反映させるために pm2 コマンドでNode-REDを再起動します。
pm2 restart node-red
これで、アクセスできれば完了です。
しばらく使っていますが、ノードの追加やHTTPレスポンスなど問題なく使えているので、いろいろ試していこうと思います!