在Ubuntu上安装Node-RED

首先

你好,我是京瓷通信系统福留(@kccs_kazuo_fukudome)。

最近,使用Node-RED编写处理流程来控制IoT设备的情况越来越多。我们公司的大山(@kccs_susumu-oyama)也在使用Node-RED进行开发。如果对使用Node-RED开发感兴趣的人,请看一下相关的开发文章。

我最近也开始使用它了。但是,当我尝试安装Node-RED时,却没有找到一个很好的整理的文章。因此,这次我将介绍在Google计算引擎(Ubuntu 20.04)上安装的步骤,也可以作为备忘录。

本文是在2023年9月左右进行审核的。
如果使用Google Cloud的功能,将会产生使用费用。

创建VM实例

在Google Compute Engine上创建一个Ubuntu 20.4的VM实例。

使用VM实例创建,将引导磁盘操作系统和版本更改为Ubuntu 20.4。其余设置将以默认设置创建实例。

image1.png

基本模块的更新

创建并启动实例后,进行Ubuntu基本模块的更新。

sudo apt-get update
sudo apt-get upgrade -y

安装 Node.js

接下来,安装作为 Node-RED 基础语言的 Node.js。然而,在2023年9月之前安装 Node.js 将会安装 Node.js v10.19.0。根据 Node-RED 的官方网站,推荐使用 Node.js v16.x 来运行 Node-RED,因此您需要通过以下操作将 Node.js 的安装版本从 v10 更改为 v16。

下载并导入Nodesource GPG密钥。

sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg

接下来,我们将创建deb仓库。因为这次我们要安装Node.js v16.X,所以将”NODE_MAJOR”设置为”16″,如果你想安装其他版本,请在这里更改数字。

NODE_MAJOR=16
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list

以上の設定を行ったら、apt をアップデートし、続いて Node.js をインストールします。

sudo apt-get update
sudo apt-get install nodejs -y

如果安装成功,运行”node -v”命令,即可确认Node.js的版本。如果显示的版本如下所示为v16.X.X,则没有问题。

image2.png

进行 Node-RED 的安装

接下来,我们将安装Node-RED。

sudo npm install -g -unsafe-perm node-red node-red-admin

Ubuntu和Google Compute Engine的防火墙设置。

最後に、Ubuntu のファイアーウォールの設定で、Node-RED のサービスポート 1880 番の通信を許可します。

sudo ufw allow 1880

此外,还需要进行Google Compute Engine的防火墙设置。有关Google Compute Engine的防火墙设置,请参考使用VPC防火墙规则等相关的HP进行设置。

Node-RED 的启动

使用以下命令启动Node-RED。

node-red &
image3.png

【附言】更改Node-RED服务端口

有些网络环境可能不允许Node-RED的1880端口通信。如果发生这种情况,请尝试修改Node-RED的配置文件中所指定的服务端口号。

    /** the tcp port that the Node-RED web server is listening on */
    uiPort: process.env.PORT || 1880,

最后

Node-RED を利用し始めて解ったのですが、プログラミングと違って簡単に処理が作成できると思いました。一方で、処理を早く動かすために、ノードの 1 つ 1 つが、非同期処理で実装されているようです。そのため、思わぬ動きをされたりして、現在も四苦八苦しています。そもそも、私自身、Node.js などの非同期のデザインパターンに慣れていない事も原因の 1 つかもしれませんが。。。
ただ、ノードを組み合わせる事によって、簡単に処理(プログラミング)ができるのは、大きなメリットだと思っています。冒頭にも書いたように、今後は Node-RED を利用した開発も増えるのでは?と感じています。

广告
将在 10 秒后关闭
bannerAds