在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 时,我意识到,与编程不同,创建进程非常容易。 另一方面,为了加快处理速度,每个节点似乎都是作为异步进程实现的。 因此,我仍在为一些意想不到的动作而苦恼。 其中一个原因可能是我自己不习惯 Node.js 等异步设计模式。
不过,我认为通过组合节点轻松处理(程序)的能力是一大优势。 正如本文开头提到的,我认为使用 Node-RED 进行的开发在未来会越来越多。 我觉得这是一件好事。

广告
将在 10 秒后关闭
bannerAds