FlowForge中的设备
FlowForge平台除了可以创建多个Node-RED实例,还可以用来管理远程设备。只需要在设备上安装官方提供的工具包,它可以用来链接到平台,并接受平台的指令。
本篇文章就来介绍一下如何管理远程设备
安装设备代理工具包
官方提供的设备代理工具包是一个公开的npm仓库,@flowforge/flowforge-device-agent。
为了方便使用,你可以将它全局安装在远程设备上。
安装命令
sudo npm install -g @flowforge/flowforge-device-agent
如果你想要使用Docker容器,而不是一个npm包,那么在运行容器是,需要挂载device.yaml
文件,以此可以存取注册的设备数据。
使用Docker来安装设备代理工具的命令如下
docker run --mount /path/to/device.yml:/opt/flowforge/device.yaml -p 1880:1880 flowforge/device-agent:latest
配置
工作目录
设备代理工具默认的工作目录是/opt/flowforge-device
.
如果你想要覆盖它可以使用-d/--dir
参数来覆盖。
注意,指定的目录必须存在,并且对当前用户有权限运行代理工具。
创建工作目录的命令和赋权限的命令。
sudo mkdir /opt/flowforge-device sudo chown -R $USER /opt/flowforge-device
监听端口
Node-RED 实例默认是使用1880
端口,在代理设备工具中你可以修改这一配置,通过使用参数-p/--port
来指定一个端口号。这对于自定义防火墙规则很有用,当一个设备上有很多实例时也很有用。
指定端口的命令
flowforge-device-agent --port=1881
注册设备
为了让一个设备链接到FF平台,你需要为设备设置一个证书。
在FF平台有两种类型的整数
- 设备证书,用于单个设备链接到平台
- 预配证书,用于设置一个或多个设备批量注册到FF平台。
设备证书可以在设备管理页面进行生成。
预配证书可以在团队的设置页面,设备Tab下生成。
连接设备
使用设备证书来链接FF平台,需要将设备证书的内容拷贝到device.yml
中,该文件一般是存放在/opt/flowforge-device
。
然后运行以下命令
flowforge-device-agent
然后你就可以看到设备已经链接到FF平台啦。
如果你使用的是预配证书,那么你也需要将预配证书复制到device.yml
文件中。然后运行和上面相同的指令。
预配证书使用过后,就不能再使用啦,将被新的设备证书覆盖。
在无法访问 npmjs.org 的情况下运行
默认情况下,设备代理将尝试下载正确版本的 Node-RED 和 运行分配在设备上运行的项目快照所需的任何节点。
如果设备在脱机网络上运行,或者安全策略阻止 设备代理从连接到 npmjs.org 然后可以配置为使用预缓存 模块集。
你可以通过添加到添加到文件的命令行来启用此模式。这将导致设备代理从设备代理配置目录中的目录加载模块,如上所述。 默认情况下,这将为 。-mmoduleCache: truedevice.ymlmodule_cache/opt/flowforge-device/module_cache
创建模块缓存
要创建合适的模块缓存,您需要在本地设备上安装 访问 npmjs.org,确保您使用与目标相同的操作系统和架构 设备,然后将模块复制到设备上。
在“项目快照”页面中,选择要部署的快照,然后选择下载其文件的选项。package.json
将此文件放在本地设备上的空目录中。
运行npm install安装模块。这将创建一个目录。node_modules
在目标设备上,创建在设备代理配置目录中调用的目录。module_cache
将目录从本地设备复制到目标设备,使其位于该目录下。node_modulesmodule_cache