更新 IoT Edge for Linux on Windows

适用于:IoT Edge 1.4 复选标记IoT Edge 1.4

重要

Azure IoT Edge 1.5 LTS 和 IoT Edge 1.4 是受支持的版本。 IoT Edge 1.4 LTS 将于 2024 年 11 月 12 日终止服务。 如果你使用的是较低的版本,请参阅更新 IoT Edge

当 IoT Edge for Linux on Windows (EFLOW) 应用程序发布新版本时,可能需要更新 IoT Edge 设备,使其获得最新功能并改善安全性。 本文提供有关在新版本推出时如何更新 IoT Edge for Linux on Windows 设备的信息。

借助 IoT Edge for Linux on Windows,IoT Edge 可以在 Windows 设备上托管的 Linux 虚拟机中运行。 此虚拟机预安装了 IoT Edge,并且没有包管理器,因此不能手动更新或更改任何 VM 组件。 相反,虚拟机使用 Microsoft Update 进行管理,可以自动使组件保持最新。

EFLOW 虚拟机旨在通过 Microsoft Update 可靠地更新。 虚拟机操作系统具有 A/B 更新分区方案,利用其中的一部分来确保每个更新的安全,并在更新过程中出现任何问题时启用回退到以前的版本。

每个更新都包含两个主要组件,这些组件可能更新到最新版本。 第一个是 EFLOW 虚拟机和内部组件。 有关 EFLOW 的详细信息,请参阅 Azure IoT Edge for Linux on Windows 组件。 此外,还包括虚拟机基础操作系统。 EFLOW 虚拟机基于 Microsoft CBL-Mariner,每个更新都提供性能和安全修补程序,以将 OS 与最新的 CVE 修补程序一起使用。 作为 EFLOW 发行说明的一部分,版本指示使用的 CBL-Mariner 版本,用户可以检查 CBL-Mariner 版本 以获取每个版本的 CES 固定列表。

第二个组件是与 EFLOW 虚拟机运行和互操作所需的 Windows 运行时组件组。 虚拟机生命周期和互操作通过不同的组件进行管理:WSSDAgent、EFLOWProxy 服务和 PowerShell 模块。

EFLOW 更新是有序的,你需要按顺序更新到每个版本,这意味着为了访问最新版本,必须使用最新可用版本执行全新安装,或将以前的所有服务更新应用到所需版本。

若要查找最新版本的 Azure IoT Edge for Linux on Windows,请参阅 EFLOW 版本

使用 Microsoft Update 进行更新

若要接收 IoT Edge for Linux on Windows 更新,Windows 主机应配置为接收其他 Azure 产品的更新。 默认情况下,Microsoft 更新将在 EFLOW 安装过程中打开。 如果在 EFLOW 安装后需要自定义配置,可以按照以下步骤打开/关闭此选项:

  1. 在 Windows 主机上打开“设置”。

  2. 选择“更新和安全性”

  3. 选择“高级选项”。

  4. 将“更新 Windows 时接收其他 Azure 产品的更新”按钮切换为“启用”。

使用 Windows 服务器更新服务 (WSUS) 进行更新

IoT Edge for Linux on Windows 更新支持使用 WSUS 的本地更新。 有关 WSUS 的详细信息,请参阅设备管理概述 - WSUS

脱机手动更新

在某些情况下,如果 Internet 连接受限或有限,可能需要脱机手动应用 EFLOW 更新。 这可以使用 Microsoft 更新脱机机制。 可以通过以下步骤,手动下载和安装 IoT Edge for Linux on Windows 更新:

  1. 查看当前安装的 EFLOW 版本。 打开“设置”,选择“应用”->“应用和功能”搜索“Azure IoT Edge”。

  2. 从 EFLOW 搜索并下载所需的更新 - Microsoft 更新目录

  3. 从下载的 .cab 文件中提取 AzureIoIf you're updating a Windows Server SKU device previous toTEdge.msi

  4. 安装提取的 AzureIoTEdge.msi

管理 Microsoft 更新

如前所述,IoT Edges for Linux on Windows 更新是使用 Microsoft 更新通道提供服务的,因此,必须打开/关闭 EFLOW 更新,才能管理 Microsoft 更新。 下面列出了自动打开/关闭 Azure 更新的一些方法。 有关管理 OS 更新的详细信息,请参阅 OS 更新

  1. CSP 策略 - 使用 Update/AllowMUUpdateService CSP 策略 - 有关 Microsoft 更新 CSP 策略的详细信息,请参阅CSP 策略 - MU 更新

  2. 手动管理 Microsoft 更新 - 有关如何选择加入 Microsoft 更新的详细信息,请参阅 “选择加入 Microsoft 更新”。

在 EFLOW 1.1LTS 和 EFLOW 1.4LTS 之间迁移

IoT Edge for Linux on Windows 不支持在不同版本训练之间进行迁移。 如果要从 1.1LTS 或 1.4LTS 版本移动到连续版本 (CR) 版本,则必须卸载当前版本并安装新的所需版本,反之亦然。

EFLOW 1.1LTS 到 EFLOW 1.4LTS 之间的迁移是 EFLOW 1.1LTS (1.1.2212.12122) 更新的一部分。 此迁移将处理从 1.1LTS 版本到 1.4LTS 版本的 EFLOW VM 迁移,包括以下内容:

  • IoT Edge 运行时
  • IoT Edge 配置
  • 容器
  • 网络和 VM 配置
  • 存储的文件

若要在 EFLOW 1.1LTS 到 EFLOW 1.4LTS 之间迁移,请使用以下步骤。

  1. 获取最新的 Azure EFLOW 1.1LTS (1.1.2212.12122) 更新。 如果使用 Windows 更新,请检查更新以获取最新的 EFLOW 更新。

  2. 对于自动下载迁移(需要 Internet 连接),请跳过此步骤。 如果 EFLOW VM 没有 Internet 访问权限或受到限制,请在开始迁移之前下载必要的文件。

  3. 打开权限提升的 PowerShell 会话

  4. 启动 EFLOW 迁移

    注意

    使用单个 cmdlet 进行迁移,方法是将 -autoConfirm 标志与 Start-EflowMigration cmdlet 结合使用。 如果已指定,则无需调用 Confirm-EflowMigration 即可继续进行 1.4 迁移。

    1. 如果使用自动下载迁移选项,请运行以下 cmdlet
      Start-EflowMigration
      
    2. 如果在步骤 2上下载 MSI,请使用下载的文件应用迁移
      Start-EflowMigration -standaloneMsiPath "<path-to-folder>\AzureIoTEdge_LTS_1.4.2.12122_X64.msi" 
      
  5. 确认 EFLOW 迁移

    1. 如果使用自动下载迁移选项,请运行以下 cmdlet
      Confirm-EflowMigration
      
    2. 如果在步骤 2上下载 MSI,请使用下载的文件应用迁移
      Confirm-EflowMigration -updateMsiPath "<path-to-folder>\AzureIoTEdge_LTS_Update_1.4.2.12122_X64.msi" 
      

警告

如果迁移由于任何原因而失败,EFLOW VM 将还原到其原始 1.1LTS 版本。 如果想取消迁移或手动将 EFLOW VM 恢复到之前的状态,可以先使用 cmdlet Start-EflowMigration,然后使用 Restore-EflowPriorToMigration

有关详细信息,请使用 Get-Help <cmdlet> -full 命令查看 Start-EflowMigrationConfirm-EflowMigrationRestore-EflowPriorToMigration cmdlet 文档。

后续步骤

查看最新的 IoT Edge for Linux on Windows 版本

详细了解 IoT Edge for Linux on Windows 安全措施