本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
安装Amazon IoT Greengrass核心软件包含Amazon IoT舰队配置
此功能适用于 v2.4.0 及更高版本的绿草核成分。
和Amazon IoT舰队配置,您可以配置Amazon IoT生成连接到 X.509 设备证书和私钥并将其安全地传送给您的设备Amazon IoT这是第一次。Amazon IoT提供由亚马逊根证书颁发机构 (CA) 签名的客户端证书。你也可以配置Amazon IoT为您在队列配置中预置的 Greengrass 核心设备指定事物组、事物类型和权限。你定义一个供应模板定义如何Amazon IoT为每台设备提供配置。配置模板指定了置备时要为设备创建的事物、策略和证书资源。有关更多信息,请参见资源调配模板在里面Amazon IoT Core开发者指南。
Amazon IoT Greengrass提供了Amazon IoT舰队配置插件,你可以用它来安装Amazon IoT Greengrass核心软件使用Amazon资源由创建Amazon IoT舰队配置。舰队配置插件使用按索赔供应。设备使用配置声明证书和私钥来获取可用于常规操作的唯一的 X.509 设备证书和私钥。在制造过程中,您可以在每台设备中嵌入索赔证书和私钥,以便您的客户可以在每台设备联机后激活设备。您可以对多台设备使用相同的声明证书和私钥。有关更多信息,请参见按索赔进行配置在里面Amazon IoT Core开发者指南。
注意
舰队配置插件目前不支持在硬件安全模块 (HSM) 中存储私钥和证书文件。要使用 HSM,安装Amazon IoT Greengrass具有手动配置功能的核心软件。
要安装Amazon IoT Greengrass核心软件包含Amazon IoT队列配置,您必须在您的设备中设置资源Amazon Web Services 账户那个Amazon IoT用于配置 Greengrass 核心设备。这些资源包括供应模板、声明证书和代币交换 IAM 角色。创建这些资源后,您可以重复使用它们在队列中预置多个核心设备。有关更多信息,请参阅设置Amazon IoT为 Greengrass 核心设备配置舰队:
重要
在你下载之前Amazon IoT Greengrass核心软件,检查您的核心设备是否符合要求安装并运行Amazon IoT Greengrass核心软件 v2.0。
主题
先决条件
要安装Amazon IoT Greengrass核心软件包含Amazon IoT舰队配置,您必须先进行配置设置Amazon IoTGreengrass 核心设备的机队配置。完成这些步骤一次后,您可以使用队列配置来安装Amazon IoT Greengrass任意数量的设备上的核心软件。
找回Amazon IoT终端
获取Amazon IoT您的终端节点Amazon Web Services 账户,然后保存它们以备日后使用。您的设备使用这些端点连接到Amazon IoT。执行以下操作:
-
获取Amazon IoT您的数据终端节点Amazon Web Services 账户。
aws iot describe-endpoint --endpoint-type iot:Data-ATS
如果请求成功,则响应看起来与以下示例类似。
{ "endpointAddress": "
device-data-prefix
-ats.iot.us-west-2.amazonaws.com" } -
获取Amazon IoT您的证书终端节点Amazon Web Services 账户。
aws iot describe-endpoint --endpoint-type iot:CredentialProvider
如果请求成功,则响应看起来与以下示例类似。
{ "endpointAddress": "
device-credentials-prefix
.credentials.iot.us-west-2.amazonaws.com" }
将证书下载到设备
该设备使用索赔证书和私钥来验证其配置请求Amazon资源并获取 X.509 设备证书。您可以在制造过程中将声明证书和私钥嵌入到设备中,或者在安装过程中将证书和密钥复制到设备上。在本节中,您将索赔证书和私钥复制到设备。您还可以将亚马逊根证书颁发机构 (CA) 证书下载到设备上。
重要
配置声明应始终保护私钥,包括在 Greengrass 核心设备上。我们建议您使用亚马逊CloudWatch指标和日志,用于监控是否存在滥用迹象,例如未经授权使用索赔证书来配置设备。如果您发现滥用,请禁用配置声明证书,使其无法用于设备配置。有关更多信息,请参见监控Amazon IoT在里面Amazon IoT Core开发者指南。
为了帮助您更好地管理在您的设备中注册的设备数量以及哪些设备Amazon Web Services 账户,您可以在创建队列配置模板时指定预置挂钩。预配置挂钩是Amazon Lambda用于验证设备在注册期间提供的模板参数的函数。例如,您可以创建一个预置挂钩,该挂钩将设备 ID 与数据库进行核对,以验证该设备是否具有预置权限。有关更多信息,请参见预置挂钩在里面Amazon IoT Core开发者指南。
将索赔证书下载到设备
-
将索赔证书和私钥复制到设备。如果在开发计算机和设备上启用了 SSH 和 SCP,则可以使用
scp
在您的开发计算机上命令传输索赔证书和私钥。以下示例命令将这些文件传输到名为的文件夹claim-certs
在您的开发计算机上连接到设备。替换device-ip-address
使用您的设备的 IP 地址。scp -r claim-certs/
device-ip-address
:~ -
在设备上创建 Greengrass 根文件夹。稍后你将安装Amazon IoT Greengrass核心软件到这个文件夹。
-
(仅限 Linux)设置 Greengrass 根文件夹的父文件夹的权限。
-
替换
/greengras
使用根文件夹的父文件夹。
sudo chmod 755
/greengrass
-
-
将索赔证书移至 Greengrass 根文件夹。
-
替换
/greengrass/v2
要么C:\greengrass\v2
使用 Greengrass 根文件夹。
-
-
下载亚马逊根证书颁发机构 (CA) 证书。Amazon IoT默认情况下,证书与亚马逊的根 CA 证书相关联。
设置设备环境
按照本节中的步骤设置 Linux 或 Windows 设备作为您的设备使用Amazon IoT Greengrass核心设备。
设置 Linux 设备
将 Linux 设备设置为Amazon IoT Greengrass V2
-
安装 Java 运行时,Amazon IoT Greengrass核心软件需要运行。我们建议你使用亚马逊 Corretto 11
要么OpenJDK 11 。以下命令向您展示了如何在您的设备上安装 OpenJDK。 -
对于基于 Debian 或基于 Ubuntua 的发行版:
sudo apt install default-jdk
-
对于基于 Red Hat 的发行版:
sudo yum install java-11-openjdk-devel
-
对于 Amazon Linux 2:
sudo amazon-linux-extras install java-openjdk11
-
对于亚马逊 Linux 2023:
sudo dnf install java-11-amazon-corretto -y
安装完成后,运行以下命令以验证 Java 是否在您的 Linux 设备上运行。
java -version
该命令输出在设备上运行的 Java 版本。例如,在基于 Debian 的发行版上,输出可能与以下示例类似。
openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
-
-
(可选)创建在设备上运行组件的默认系统用户和组。你也可以选择让Amazon IoT Greengrass核心软件安装程序使用安装程序在安装过程中创建此用户和群组
--component-default-user
安装程序参数。有关更多信息,请参阅安装程序参数:sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group
-
验证运行的用户是Amazon IoT Greengrass核心软件(通常
root
),有权运行sudo
适用于任何用户和任何群组。-
运行以下命令打开
/etc/sudoers
文件。sudo visudo
-
验证用户的权限是否与以下示例类似。
root ALL=(ALL:ALL) ALL
-
-
(可选)至运行容器化 Lambda 函数,你必须启用cgroup
v1,并且必须启用并安装记忆和设备cgroups。如果您不打算运行容器化 Lambda 函数,则可以跳过此步骤。 要启用这些 cgroups 选项,请使用以下 Linux 内核参数启动设备。
cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
有关查看和设置设备内核参数的信息,请参阅操作系统和启动加载程序的文档。按照说明永久设置内核参数。
-
如中的要求列表所示,在您的设备上安装所有其他必需的依赖项设备要求。
设置 Windows 设备
注意
此功能适用于 v2.5.0 及更高版本的绿草核成分。
将 Windows 设备设置为Amazon IoT Greengrass V2
-
安装 Java 运行时,Amazon IoT Greengrass核心软件需要运行。我们建议你使用亚马逊 Corretto 11
要么OpenJDK 11 。 -
检查 Java 上是否可用路径
系统变量,如果不是,则添加它。这个LocalSystem账户运行Amazon IoT Greengrass核心软件,因此必须将 Java 添加到 PATH 系统变量中,而不是为用户添加 PATH 用户变量。执行以下操作: -
按 Windows 键打开开始菜单。
-
类型
environment variables
从开始菜单中搜索系统选项。 -
在开始菜单搜索结果中,选择编辑系统环境变量要打开系统属性窗口。
-
选择环境变量...要打开环境变量窗口。
-
下系统变量,选择路径,然后选择编辑。在编辑环境变量窗口,您可以在单独的行上查看每条路径。
-
检查 Java 安装的路径是否为
bin
文件夹存在。路径可能与以下示例类似。C:\Program Files\Amazon Corretto\jdk11.0.13_8\bin
-
如果 Java 安装的是
bin
中缺少文件夹路径,选择全新将其添加,然后选择好吧。
-
-
打开 Windows 命令提示符 (
cmd.exe
) 作为管理员。 -
在中创建默认用户LocalSystemWindows 设备上的帐户。替换
密码
使用安全的密码。net user /add ggc_user
password
提示
根据你的 Windows 配置,用户的密码可能会被设置为在将来的某个日期过期。为确保您的 Greengrass 应用程序继续运行,请跟踪密码何时过期,并在密码到期之前进行更新。您也可以将用户的密码设置为永不过期。
-
要检查用户及其密码何时过期,请运行以下命令。
net user
ggc_user
| findstr /C:expires -
要将用户的密码设置为永不过期,请运行以下命令。
wmic UserAccount where "Name='
ggc_user
'" set PasswordExpires=False
-
-
下载并安装PsExec实用程序
来自设备上的微软。 -
使用PsExec实用程序,用于在凭证管理器实例中存储默认用户的用户名和密码LocalSystem账户。替换
密码
使用您之前设置的用户密码。psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:
password
如果PsExec License Agreement打开,选择Accept同意许可证并运行命令。
注意
在 Windows 设备上,LocalSystem账户运行 Greengrass 核心,你必须使用PsExec用于将默认用户信息存储在LocalSystem账户。使用凭证管理器应用程序将此信息存储在当前登录用户的 Windows 帐户中,而不是LocalSystem账户。
下载Amazon IoT Greengrass核心软件
你可以下载最新版本的Amazon IoT Greengrass核心软件来自以下位置:
注意
你可以下载特定版本的Amazon IoT Greengrass核心软件来自以下位置。替换版本
有版本可供下载。
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-
version
.zip
要下载Amazon IoT Greengrass核心软件
-
在您的核心设备上,下载Amazon IoT Greengrass将核心软件转换为名为的文件
greengrass-nucleus-latest.zip
。下载此软件即表示您同意Greengrass 核心软件许可协议
。 -
解压缩Amazon IoT Greengrass将核心软件保存到设备上的文件夹。替换
GreengrassInstaller
使用你要使用的文件夹。 -
(可选)运行以下命令查看版本Amazon IoT Greengrass核心软件。
java -jar ./
GreengrassInstaller
/lib/Greengrass.jar --version
重要
如果你安装的版本早于 v2.4.0 的 Greengrass nucleus,则在安装后不要删除此文件夹Amazon IoT Greengrass核心软件。这个Amazon IoT Greengrass核心软件使用此文件夹中的文件来运行。
如果您下载了最新版本的软件,则安装了 v2.4.0 或更高版本,安装后可以删除此文件夹Amazon IoT Greengrass核心软件。
(可选)验证 Greengrass nucleus 软件签名
注意
此功能在 Greengrass nucleus 2.9.5 及更高版本中可用。
-
使用以下命令验证你的 Greengrass nucleus 工件的签名:
-
这个
jarsigner
调用产生的输出指示验证结果。-
如果 Greengrass nucleus 压缩文件已签名,则输出将包含以下语句:
jar verified.
-
如果 Greengrass nucleus 压缩文件未经过签名,则输出包含以下语句:
jar is unsigned.
-
-
如果你提供了 Jarsigner
-certs
选项以及-verify
和-verbose
选项,输出还包括详细的签名者证书信息。
下载Amazon IoT舰队配置插件
你可以下载最新版本的Amazon IoT舰队配置插件来自以下位置:
注意
你可以下载特定版本的Amazon IoT来自以下位置的舰队配置插件。替换版本
有版本可供下载。有关每个版本的舰队配置插件的更多信息,请参阅Amazon IoT舰队配置插件变更日志。
https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-
version
.jar
舰队配置插件是开源的。要查看其源代码,请参见Amazon IoT舰队配置插件
要下载Amazon IoT舰队配置插件
-
在您的设备上,下载Amazon IoT队列配置插件到名为的文件
aws.greengrass.FleetProvisioningByClaim.jar
。替换GreengrassInstaller
使用你要使用的文件夹。下载此软件即表示您同意Greengrass 核心软件许可协议
。
安装 Amazon IoT Greengrass Core 软件
使用指定以下操作的参数运行安装程序:
-
从部分配置文件安装,该文件指定使用舰队配置插件进行配置Amazon资源。这个Amazon IoT Greengrass核心软件使用配置文件来指定设备上每个 Greengrass 组件的配置。安装程序会根据您提供的部分配置文件创建一个完整的配置文件以及Amazon舰队配置插件创建的资源。
-
指定使用
ggc_user
系统用户在核心设备上运行软件组件。在 Linux 设备上,此命令还指定使用ggc_group
系统组,安装程序会为您创建系统用户和组。 -
设置Amazon IoT Greengrass核心软件作为系统服务,在启动时运行。在 Linux 设备上,这需要Systemd
初始化系统。 重要
在 Windows 核心设备上,你必须设置Amazon IoT Greengrass核心软件即系统服务。
有关您可以指定的参数的更多信息,请参见安装程序参数。
注意
如果你在跑步Amazon IoT Greengrass在内存有限的设备上,你可以控制内存量Amazon IoT Greengrass核心软件用途。要控制内存分配,可以在中设置 JVM 堆大小选项jvmOptions
你的 nucleus 组件中的配置参数。有关更多信息,请参阅使用 JVM 选项控制内存分配:
安装 Amazon IoT Greengrass Core 软件
-
检查版本Amazon IoT Greengrass核心软件。
-
替换
GreengrassInstaller
以及包含该软件的文件夹的路径。
java -jar ./
GreengrassInstaller
/lib/Greengrass.jar --version -
-
使用文本编辑器创建名为的配置文件
config.yaml
提供给安装程序。例如,在基于 Linux 的系统上,你可以运行以下命令来使用 GNU nano 来创建文件。
nano
GreengrassInstaller
/config.yaml将以下 YAML 内容复制到文件中。此部分配置文件指定了舰队配置插件的参数。有关您可以指定的选项的更多信息,请参阅配置Amazon IoT舰队配置插件。
然后,执行以下操作:
-
替换
2.11.2
使用的是的版本Amazon IoT Greengrass核心软件。 -
替换的每个实例
/greengrass/v2
要么C:\greengrass\v2
使用 Greengrass 根文件夹。注意
在 Windows 设备上,必须将路径分隔符指定为双反斜杠 (
\\
),例如C:\\greengrass\\v2
。 -
替换
us-west-2
和Amazon您创建配置模板和其他资源的区域。 -
替换
iotDataEndpoint
和你在一起Amazon IoT数据端点。 -
替换
iotCredentialEndpoint
和你在一起Amazon IoT凭证终端节点。 -
替换
GreengrassCoreTokenExchangeRoleAlias
使用代币交换角色别名的名称。 -
替换
GreengrassFleetProvisioningTemplate
使用舰队配置模板的名称。 -
替换
claimCertificatePath
包含设备上索赔证书的路径。 -
替换
claimCertificatePrivateKeyPath
包含设备上声明证书私钥的路径。 -
替换模板参数 (
templateParameters
),其中包含用于配置设备的值。这个例子是指示例模板这定义了ThingName
和ThingGroupName
参数。
注意
在此配置文件中,您可以自定义其他配置选项,例如要使用的端口和网络代理,如以下示例所示。有关更多信息,请参见Greengrass 核配置。
要使用 HTTPS 代理,必须使用队列配置插件的 1.1.0 或更高版本。您还必须指定
rootCaPath
下system
,如以下示例所示。 -
-
运行安装程序。指定
--trusted-plugin
提供舰队配置插件,并指定--init-config
提供配置文件。-
替换
/greengrass/v2
使用 Greengrass 根文件夹。 -
替换的每个实例
GreengrassInstaller
使用你解压缩安装程序的文件夹。
重要
在 Windows 核心设备上,必须指定
--setup-system-service true
来设置Amazon IoT Greengrass核心软件即系统服务。如果你指定
--setup-system-service true
,安装程序会打印Successfully set up Nucleus as a system service
如果它将软件设置为系统服务并运行。否则,如果安装程序成功安装了软件,则安装程序不会输出任何消息。注意
你不能使用
deploy-dev-tools
在没有安装程序的情况下运行安装程序时部署本地开发工具的参数--provision true
争论。有关直接在您的设备上部署 Greengrass CLI 的信息,请参阅Gmmmmmmmmmm。 -
-
通过查看根文件夹中的文件来验证安装。
如果安装成功,则根文件夹包含多个文件夹,例如
config
,packages
,以及logs
。
如果你安装了Amazon IoT Greengrass核心软件作为系统服务,安装程序为您运行软件。否则,必须手动运行该软件。有关更多信息,请参阅运行Amazon IoT GreengrassCore 软件:
有关如何配置和使用该软件的更多信息,以及Amazon IoT Greengrass,请参阅以下内容: