如果尚未这样做,请查看 将代理更新与 Azure IoT 中心的设备更新配合使用。
设置测试设备或虚拟机
本教程以 Ubuntu Server 18.04 LTS 虚拟机(VM)为例。
安装设备更新代理和依赖项
在 APT 包存储库中完成 packages.microsoft.com 的注册。
sudo apt-get update sudo apt install curl curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ~/microsoft-prod.list sudo cp ~/microsoft-prod.list /etc/apt/sources.list.d/ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > ~/microsoft.gpg sudo cp ~/microsoft.gpg /etc/apt/trusted.gpg.d/ sudo apt-get update
在 IoT 设备上安装 deviceupdate-agent。 从 packages.microsoft.com下载最新的 Device Update Debian 文件:
sudo apt-get install deviceupdate-agent
或者,将下载的 Debian 文件复制到测试 VM。 如果在计算机上使用 PowerShell,请运行以下 shell 命令:
scp <path to the .deb file> tester@<your vm's ip address>:~
然后远程连接到 VM,并在 home 文件夹中运行以下 shell 命令:
#go to home folder cd ~ #install latest Device Update agent sudo apt-get install ./<debian file name from the previous step>
转到 Azure IoT 中心,复制 IoT 设备的设备更新模块的主连接字符串。 将
connectionData
字段的任何默认值替换为 du-config.json 文件中的主连接字符串:sudo nano /etc/adu/du-config.json
注释
可以改为复制设备的主连接字符串,但我们建议使用设备更新模块的字符串。 有关设置模块的信息,请参阅 设备更新代理预配。
确保 /etc/adu/du-diagnostics-config.json 包含日志收集的正确设置。 例如:
{ "logComponents":[ { "componentName":"adu", "logPath":"/var/log/adu/" }, { "componentName":"do", "logPath":"/var/log/deliveryoptimization-agent/" } ], "maxKilobytesToUploadPerLogPath":50 }
重启设备更新代理:
sudo systemctl restart adu-agent
设置模拟组件
为了进行测试和演示,我们将在设备上创建以下模拟组件:
- 三个电机
- 两个相机
- “hostfs”
- “rootfs”
重要
上述组件配置基于名为 libcontoso-component-enumerator.so的示例组件枚举器扩展的实现。 它还需要此模拟组件清单数据文件:/usr/local/contoso-devices/components-inventory.json。
将 演示 文件夹复制到测试 VM 上的主目录。 然后运行以下命令,将所需的文件复制到正确的位置:
`~/demo/tools/reset-demo-components.sh`
reset-demo-components.sh
命令代表你执行以下步骤:它将复制 components-inventory.json 并将其添加到 /usr/local/contoso-devices 文件夹中。
它将 Contoso 组件枚举器扩展(libcontoso-component-enumerator.so)从 Assets 文件夹 复制,并将其添加到 文件夹的 /var/lib/adu/extensions/sources。
它注册了扩展:
sudo /usr/bin/AducIotAgent -E /var/lib/adu/extensions/sources/libcontoso-component-enumerator.so
使用以下命令设置 VM 以支持代理更新,查看和记录当前组件的软件版本:
~/demo/show-demo-components.sh
导入示例更新
如果尚未执行此作,请创建 设备更新帐户和实例,包括配置 IoT 中心。 然后启动以下过程。
从 最新的设备更新版本中,在 资产下下载代理更新的导入清单和镜像。
登录到 Azure 门户并转到具有设备更新的 IoT 中心。 在左窗格中,选择 设备管理>更新。
选择“汇报”选项卡。
选择“+ 导入新更新 (Import New Update)”。
选择 + 从存储容器中进行选择,然后选择存储帐户和容器。
选择 上传 以添加在步骤 1 中下载的文件。
将父导入清单、子导入清单和有效负载文件上传到您的容器。
以下示例展示了上传的样本文件,用于更新连接到智能吸尘器设备的相机。 它还包括预安装脚本,用于在无线更新之前关闭相机。
在此示例中,父导入清单 contoso.Virtual-Vacuum-virtual-camera.1.4.importmanifest.json。 更新相机详情的子导入清单为 Contoso.Virtual-Vacuum.3.3.importmanifest.json。 请注意,这两个清单文件名都遵循所需的格式,以 .importmanifest.json结尾。
选择 选择。
UI 现在显示将导入到设备更新的文件列表。 选择 导入更新。
导入过程开始,屏幕将更改为 导入历史记录 部分。 选择 刷新 以查看进度,直到导入过程完成。 根据更新的大小,导入可能需要几分钟或更长时间才能完成。
当 状态 列指示导入已成功时,请选择 可用更新 选项卡。现在应会在列表中看到导入的更新。
创建更新组
创建组后,你将看到更新符合性图表和组列表已被更新。 更新符合性图表显示处于各种符合性状态的设备计数:最新更新、可用的新更新和正在进行的更新。 了解更新符合性。
你应该可以看到你新创建的组以及新组中设备的任何可用更新。 如果存在不符合该组设备类别要求的设备,它们将显示在相应的无效设备组中。 可以通过单击组旁边的“部署”按钮,从此视图中将最佳可用更新部署到新的用户定义的组。
部署更新
创建组后,应会看到可用于设备组的新更新,其中提供了“最佳更新”下更新的链接(可能需要刷新一次)。 详细了解更新符合性。
通过单击组名称选择目标组。 您将被引导至组基础中的组详细信息。
- 若要启动部署,请转到“当前部署”选项卡。从“可用更新”部分单击所需更新旁边的部署链接。 给定组的最佳可用更新将用“最佳”标识出来。
- 您可以计划您的部署立即启动或延后到将来启动,然后选择“创建”。
- “部署详细信息”下的“状态”应变为“活动”,并且部署的更新应标记为“(部署中)”。
监视更新部署
现已使用适用于 IoT 中心的设备更新完成端到端代理更新。
清理资源
当不再需要它们时,请清理设备更新帐户、实例、IoT 中心和 IoT 设备。
后续步骤
可以使用以下教程来简单演示 IoT 中心的设备更新:
面向 Azure IoT 中心的设备更新教程,使用 Raspberry Pi 3 B+ 参考镜像,(可通过开源扩展,根据需要为其他体系结构生成自己的镜像)
在 Ubuntu Server 18.04 x64 上使用包代理的 Azure IoT 中心设备更新教程
使用 Azure 实时操作系统的教程:Azure IoT 中心设备更新