为什么当我尝试克隆一台装有 Node-RED 的机器时,我丢失了我所做的所有图形配置(Ubuntu 亚马逊服务器)?

Why when I try to clone a machine with the Node-RED on it I lose all the graphical configuration that I've made (Ubuntu Amazon Server)?

我是 运行 Ubuntu Server Amazon EC2 Service。我正在使用 Node-RED 在云端创建物联网项目。

我成功地以适用于我的项目的方式配置了一台机器。我的问题是当我克隆这台机器时(创建原始服务器的 Amazon Machine Image 并将其作为新机器启动)。我不知道为什么当我克隆 Ubuntu 服务器时,我在图形界面上使用 Node-RED 创建的所有节点都消失了。在我的克隆服务器上,当我访问 Node-RED 时我只看到一个空白页面,就好像我从未在原始服务器上创建任何节点一样:

我认为这是 Node-RED 的问题,因为我也是 运行 同一服务器上的一个 Kibana 实例,并且所有 Kibana's graphical configurations 都与 cloned server 一起保留.

有谁知道为什么会这样?我必须更改 Node-RED 上的特定配置以允许克隆其图形界面吗?

OBS:我知道我可以使用 Node-RED import/export 工具将我在原始服务器上所做的一切导出到我的克隆服务器...但我打算多次克隆我的原始服务器时间,所以如果我克隆机器时一切都完全相同,而不需要手动工作,那就更好了。

Node-RED 将流存储在用户 运行 实例的 ~/.node-red/ 目录中的文件中,文件名基于机器的主机名。

例如在 raspberry pi 上,默认流文件名为:

/home/pi/.node-red/flows_raspberrypi.json

因此,假设当您 "clone" 机器时主机名发生更改,Node-RED 将无法找到与主机名匹配的流文件,因此以空流开始。

有几种方法可以解决这个问题。

  • 如果您从命令行手动启动 Node-RED,您可以将流文件指定为最后一个参数:node-red flow.json
  • 如果您是 运行 Node-RED 即服务,那么您可以编辑 ~/.node-red/settings.js 以包含一个 flowFile 键,其中包含要使用的流的名称。