跳转至

物联网模块安装#

物联网模块需要执行本文档中描述的安装后步骤。

包存储库#

如系统要求中所述,物联网模块需要一个包代码库来存储所有二进制文件和相应版本。

目前,支持两种类型的代码库(NPMDirectory),每种代码库都有其自己的优点和缺点。

类型 优点 缺点
NPM 通过角色进行身份验证
基于Web服务器
明确定义的API
提供商业解决方案及支持
必须安装/配置/维护服务器
商业解决方案/支持不是免费的
可能需要互联网连接
更新包时需要取消发布 + 发布(开发 + 修补程序)
目录 免费
易于准备
易于检索/更改包
不需要互联网/端口
必须在所有物联网计算机中可用(挂载)
基于ACL的身份验证
任何具有权限的人都可以简单地删除所有内容

Table: 包代码库类型

部署物联网模块包#

包选择#

运行安装向导并从下拉菜单中选择Cmf.ConnectIoT.Packages包,然后单击下一步按钮。

Deploy Connect IoT Packages - Package Selection

如果您有任何先前导出的配置文件,则可以导入该文件。即便是这种情况,仍然继续下一步

物联网模块配置#

NPM服务器代码库部分中,按照下面的描述填写字段:

  • 是否已启用 - 包是否应发布到NPM代码库
  • 地址 - 服务器(必须支持NPM API)的完整地址(包括端口)
  • 标记 - 用于标记包的标记
  • 注册表用户 - 具有发布权限的用户名
  • 注册表用户密码 - 上一个字段中指定的用户的密码
  • 注册表用户电子邮件 - 与将发布包的用户关联的电子邮件

目录代码库下,定义以下选项:

  • 是否已启用 - 包是否应发布到目录代码库
  • 位置 - 目录的完整路径(如果目录不存在,将创建目录)

Deploy Connect IoT Packages - Connect IoT Configurations

下一节与MES配置有关:

MES配置#

定义MES系统的配置:

  • 租户名称 - 用于连接到MES系统的租户名称
  • 主机名或IP地址 - 安装MES系统的地址
  • 端口 - MES系统的端口地址
  • 使用SSL - 是否使用SSL

用户帐户下,填写将访问系统的用户的详细信息:

  • 用户帐户 - 用于访问MES系统的用户帐户
  • 用户密码 - 用于访问MES系统的用户密码

安全门户#

定义与通过安全门户进行身份验证和授权相关的设置:

  • 启用安全门户 – 指定是否在此安装中启用安全门户。
  • 安全门户客户端ID – 指定用于访问安全门户的客户端ID。
  • 地址 – 指定可访问安全门户网站的主机名。
  • 端口 – 指定可访问安全门户网站的端口。
  • 安全访问令牌 – 指定此实例的访问令牌。

Warning

如果启用了安全门户,则必须将上面定义的用户设置为集成用户。

Deploy Connect IoT Packages - MES Configurations

下一步继续安装过程。

物联网模块代码库设置#

代码库设置中定义是否配置该代码库以及要使用的代码库类型:

  • Npm
  • 目录

临时文件下,选择是否应移除临时文件。

下一步继续安装过程。

Deploy Connect IoT Packages - Connect IoT Repository Settings

物联网模块管理器配置#

管理器选择中,插入自动化管理器ID(每行一个条目)。还需定义将在其中运行管理器的基本目录。

最后,定义是否应将管理器作为服务安装。

在下面的自动化管理器用户设置中,定义用于运行自动化管理器的用户凭据(用户名和密码)。

Deploy Connect IoT Packages - Connect IoT Managers Configurations

下一步查看安装摘要,并继续安装过程直至结束。

手动部署包#

有时,需要手动部署包(即自定义包),因此务必了解如何完成此任务。

目录代码库#

部署一个包甚至一组包的过程相当简单:

  1. 将文件复制到用作目录代码库的目录中(即上一节的安装步骤中使用的目录)
  2. 执行安装期间创建的.rebuildDatabase.ps1 PowerShell脚本 Rebuild database Powershell script
  3. 现在将使用所有可用包更新数据库
  4. 注意:简而言之,该脚本会完全更新目录的内容,因此您可以删除/添加/更新包并运行该脚本。

NPM代码库#

如果NPM服务器配置了用于发布的身份验证角色,请确保先登录:

npm login --registry=<url>

然后,对要发布的每个包,运行以下命令:

npm publish <package> --registry=<url> --tag=<tag>

Running npm commands

安装自动化管理器#

从7.2版开始,您可以从Automation Manager实体页面下载一个完全准备就绪且可供使用的zip压缩文件,因此,安装自动化管理器的过程将非常简单。

使用相应的向导下载该文件后,便可简单地将所有内容解压到目标目录中。

最后一步是将该自动化模块安装为Windows服务。对于此功能,请以管理员身份(创建Windows服务要求具有管理员权限)执行位于scripts\InstallService.ps1中的PowerShell脚本,并回答相关问题。

Install Automation Manager

Info

如需正确安装自动化管理器,必须具有.Net Framework 3.5或更高版本。

问题排查#

“无法验证第一个证书”#

“无法获取本地颁发者证书”#

当您遇到上述任何错误时,这意味着您正在连接到启用SSL的主机,而且很可能服务器证书是由非信任证书颁发机构颁发的。

如需解决此问题,您需要创建一个文本文件,其中包含允许验证服务器证书所需的整个证书链(采用.pem格式)。

如果您只有.pfx格式的证书,则可以使用OpenSSL对其进行转换。

openssl pkcs12 -in file.pfx -out file.pem -nodes

最终文件的结构应如下所示:

-----BEGIN CERTIFICATE-----
bGUgQ28xEDAOBgNVBAsMB3RlY2hvcHMxCzAJBgNVBAMMAmNhMSAwHgYJKoZIhvcN
AQkBFhFjZXJ0c0BleGFtcGxlLmNvbTAeFw0xOTA1MTcxMDQ5NTRaFw00NjEwMDEx
...
oEGp4U7q1UGmGfmXKiT/gsxJB6bbD6kO1SVdE+706WLg1vN4cLj1jvIr00jhWt41
sJtjAyB64zRVeS5Ic7Vidv6UDMM=
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MDQ5NTRaMIGBMQswCQYDVQQGEwJVUzELMAkGA1UECAwCTUExDzANBgNVBAcMBkJv
c3RvbjETMBEGA1UECgwKRXhhbXBsZSBDbzEQMA4GA1UECwwHdGVjaG9wczELMAkG
...
knyZpJnYVisd5NUVmjWNSlK/S6eA/Ka9LxFUhjRt0MMcXP91YHp6+rgsigZt5c3V
aBM3yGsn3YQnttUNp2dQwBgNpH9=
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
BwmQEGpD6ECCjPXZLH38KLCpSLzzQEqz0tulvDtRIGlEPLsdlWMLnwbQPG/TJ2M5
Gpezb90Lqfi6POObEIO3/3dAewgn4xhW6aZHf6yWgtM7gdQIJpRXK2T8ZGWv1LMz
...
KAjgC4ttj4DlJfljq61DlegE/0BbAtqNiQ3er9NB/wor3ET5eOO/12Ly1eotiHd5
/rkm+ENnvbNWk4w+LzHXfejtSAh=
-----END CERTIFICATE-----

然后,将此文件的位置设置到NODE_EXTRA_CA_CERTS环境变量中

set NODE_EXTRA_CA_CERTS=c:\certificates\extra_ca_certificates.txt

另一种方法是禁用证书完整性检查。这不会禁用安全性,但会将收到的证书按原样使用;而且,此选项只能在开发环境中使用。

set NODE_TLS_REJECT_UNAUTHORIZED=0

注意:环境变量应定义为持久性宽定义。本节中介绍的命令是临时命令,仅在命令窗口会话期间有效。