教程:使用 Azure IoT 中心的设备更新完成代理更新

如果尚未这样做,请查看 将代理更新与 Azure IoT 中心的设备更新配合使用

设置测试设备或虚拟机

本教程以 Ubuntu Server 18.04 LTS 虚拟机(VM)为例。

安装设备更新代理和依赖项

  1. 在 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
    
  2. 在 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>
    
  3. 转到 Azure IoT 中心,复制 IoT 设备的设备更新模块的主连接字符串。 将 connectionData 字段的任何默认值替换为 du-config.json 文件中的主连接字符串:

       sudo nano /etc/adu/du-config.json  
    

    注释

    可以改为复制设备的主连接字符串,但我们建议使用设备更新模块的字符串。 有关设置模块的信息,请参阅 设备更新代理预配

  4. 确保 /etc/adu/du-diagnostics-config.json 包含日志收集的正确设置。 例如:

    {
      "logComponents":[
        {
          "componentName":"adu",
           "logPath":"/var/log/adu/"
        },
        {
          "componentName":"do",
          "logPath":"/var/log/deliveryoptimization-agent/"
        }
      ],
      "maxKilobytesToUploadPerLogPath":50
    }
    
  5. 重启设备更新代理:

    sudo systemctl restart adu-agent
    

设置模拟组件

为了进行测试和演示,我们将在设备上创建以下模拟组件:

  • 三个电机
  • 两个相机
  • “hostfs”
  • “rootfs”

重要

上述组件配置基于名为 libcontoso-component-enumerator.so的示例组件枚举器扩展的实现。 它还需要此模拟组件清单数据文件:/usr/local/contoso-devices/components-inventory.json

  1. 演示 文件夹复制到测试 VM 上的主目录。 然后运行以下命令,将所需的文件复制到正确的位置:

    `~/demo/tools/reset-demo-components.sh` 
    

    reset-demo-components.sh 命令代表你执行以下步骤:

    1. 它将复制 components-inventory.json 并将其添加到 /usr/local/contoso-devices 文件夹中。

    2. 它将 Contoso 组件枚举器扩展(libcontoso-component-enumerator.so)从 Assets 文件夹 复制,并将其添加到 文件夹的 /var/lib/adu/extensions/sources。

    3. 它注册了扩展:

      sudo /usr/bin/AducIotAgent -E /var/lib/adu/extensions/sources/libcontoso-component-enumerator.so
      
  2. 使用以下命令设置 VM 以支持代理更新,查看和记录当前组件的软件版本:

    ~/demo/show-demo-components.sh
    

导入示例更新

如果尚未执行此作,请创建 设备更新帐户和实例,包括配置 IoT 中心。 然后启动以下过程。

  1. 最新的设备更新版本中,在 资产下下载代理更新的导入清单和镜像。

  2. 登录到 Azure 门户并转到具有设备更新的 IoT 中心。 在左窗格中,选择 设备管理>更新

  3. 选择“汇报”选项卡。

  4. 选择“+ 导入新更新 (Import New Update)”。

  5. 选择 + 从存储容器中进行选择,然后选择存储帐户和容器。

    屏幕截图,显示用于选择从存储容器导入的按钮。

  6. 选择 上传 以添加在步骤 1 中下载的文件。

  7. 将父导入清单、子导入清单和有效负载文件上传到您的容器。

    以下示例展示了上传的样本文件,用于更新连接到智能吸尘器设备的相机。 它还包括预安装脚本,用于在无线更新之前关闭相机。

    在此示例中,父导入清单 contoso.Virtual-Vacuum-virtual-camera.1.4.importmanifest.json。 更新相机详情的子导入清单为 Contoso.Virtual-Vacuum.3.3.importmanifest.json。 请注意,这两个清单文件名都遵循所需的格式,以 .importmanifest.json结尾。

    屏幕截图,显示示例文件被上传,用于更新连接到智能吸尘器设备的相机。

  8. 选择 选择

  9. UI 现在显示将导入到设备更新的文件列表。 选择 导入更新

    屏幕截图,其中显示了列出的文件和用于导入更新的按钮。

  10. 导入过程开始,屏幕将更改为 导入历史记录 部分。 选择 刷新 以查看进度,直到导入过程完成。 根据更新的大小,导入可能需要几分钟或更长时间才能完成。

  11. 状态 列指示导入已成功时,请选择 可用更新 选项卡。现在应会在列表中看到导入的更新。

    显示添加到列表中的导入更新的屏幕截图。

了解有关导入更新的详细信息

创建更新组

  1. 转到页面顶部的“组和部署”选项卡。 未分组设备的屏幕截图。

  2. 选择“添加组”按钮以创建新组。 设备组添加的屏幕截图。

  3. 从列表中选择 IoT 中心标记和设备类,然后选择“创建组”。 标记选择的屏幕截图。

  4. 创建组后,你将看到更新符合性图表和组列表已被更新。 更新符合性图表显示处于各种符合性状态的设备计数:最新更新、可用的新更新和正在进行的更新。 了解更新符合性。更新符合性视图的屏幕截图。

  5. 你应该可以看到你新创建的组以及新组中设备的任何可用更新。 如果存在不符合该组设备类别要求的设备,它们将显示在相应的无效设备组中。 可以通过单击组旁边的“部署”按钮,从此视图中将最佳可用更新部署到新的用户定义的组。

详细了解如何添加标记和创建更新组

部署更新

  1. 创建组后,应会看到可用于设备组的新更新,其中提供了“最佳更新”下更新的链接(可能需要刷新一次)。 详细了解更新符合性。

  2. 通过单击组名称选择目标组。 您将被引导至组基础中的组详细信息。

组详细信息

  1. 若要启动部署,请转到“当前部署”选项卡。从“可用更新”部分单击所需更新旁边的部署链接。 给定组的最佳可用更新将用“最佳”标识出来。

选择更新

  1. 您可以计划您的部署立即启动或延后到将来启动,然后选择“创建”。

创建部署

  1. “部署详细信息”下的“状态”应变为“活动”,并且部署的更新应标记为“(部署中)”。

部署活动

  1. 查看符合性图表。 应该会看到更新正在进行中。

  2. 成功更新设备后,您应该会看到合规图表和部署详细信息更新以反映相应的变化。

    更新成功

监视更新部署

  1. 选择页面顶部的“部署历史记录”选项卡。

    部署历史记录

  2. 选择你所创建的部署旁边的详细信息链接。

    部署详细信息

  3. 选择“刷新”以查看最新状态详细信息。

现已使用适用于 IoT 中心的设备更新完成端到端代理更新。

清理资源

当不再需要它们时,请清理设备更新帐户、实例、IoT 中心和 IoT 设备。

后续步骤

可以使用以下教程来简单演示 IoT 中心的设备更新: