AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWSSupport-UpgradeWindowsAWSDrivers

描述

AWSSupport-UpgradeWindowsAWSDrivers 在指定的 Amazon EC2 实例上升级或修复存储及网络 AWS 驱动程序。该文档尝试通过调用 SSM 代理 在线安装最新版本的 AWS 驱动程序。如果无法与 SSM 代理 通信,则在明确要求时,该文档可以执行 AWS 驱动程序的离线安装。注意:在线和离线升级都将在尝试任何操作前创建一个 AMI,此 AMI 在 Automation 完成后予以保留。对此 AMI 的安全访问由您负责;或者,您也可以将其删除。在线方法在升级过程中会重启实例,而离线方法则需要停止然后启动提供的 Amazon EC2 实例。

注意

此文档将在域控制器上失败。要更新域控制器上的 AWS 半虚拟化驱动程序,请参阅升级域控制器(AWS 半虚拟化升级)

文档类型

Automation

所有者

Amazon

平台

Windows

参数

  • 实例 ID

    类型:字符串

    说明:(必需)您的 Amazon EC2 Windows 实例的 ID。

  • AllowOffline

    类型:字符串

    允许的值:True、False

    默认值:False

    说明:(可选)如果允许在无法执行在线安装时进行离线驱动程序升级,请将其设置为 true。注意:离线方法需要停止提供的 EC2 实例然后启动。存储在实例存储卷中的数据将丢失。如果不使用弹性 IP,则公有 IP 地址将发生更改。

  • SubnetId

    类型:字符串

    默认值:SelectedInstanceSubnet

    说明:(可选)仅离线 - 用于执行离线驱动程序升级的 EC2Rescue 实例的子网 ID。如果未指定子网 ID,Systems Manager Automation 将创建一个新 VPC。

    重要

    子网必须与 InstanceId 位于同一可用区中,并且必须允许访问 SSM 终端节点。

  • ForceUpgrade

    类型:字符串

    允许的值:True、False

    默认值:False

    说明:(可选)仅离线 - 如果允许离线驱动程序升级在实例已安装最新驱动程序的情况下继续,请将其设置为 true。

  • AutomationAssumeRole

    类型:字符串

    说明:(可选)允许 Automation 代表您执行操作的角色的 ARN。如果未指定任何角色,Systems Manager Automation 使用您的 IAM 权限运行此文档。

示例

启动 Automation

aws ssm start-automation-execution --document-name AWSSupport-UpgradeWindowsAWSDrivers --parameters "InstanceId=INSTANCEID"

启动 Automation 并允许离线升级

aws ssm start-automation-execution --document-name AWSSupport-UpgradeWindowsAWSDrivers --parameters "InstanceId=INSTANCEID,AllowOffline=True"

检索执行输出

aws ssm get-automation-execution --automation-execution-id EXECUTIONID --output text --query 'AutomationExecution.Output'

所需的 IAM 权限

建议让接收命令的 EC2 实例具有附加了 AmazonEC2RoleforSSM Amazon 托管策略的 IAM 角色。您必须至少具有 ssm:ExecuteAutomationssm:SendCommand 才能运行此 Automation 并将命令发送到实例,并且需要具有 ssm:GetAutomationExecution 才能读取 Automation 输出。如果要执行离线升级,请参阅 AWSSupport-StartEC2RescueWorkflow 所需的权限。

文档步骤

  1. aws:assertAwsResourceProperty - 验证输入实例为 Windows。

  2. aws:assertAwsResourceProperty - 验证输入实例为托管实例。如果是托管实例,则启动在线升级,否则将评估离线升级。

    1. (在线升级)如果输入实例为托管实例:

      1. aws:createImage - 创建一个 AMI 备份。

      2. aws:createTags - 标记 AMI 备份。

      3. aws:runCommand - 通过 AWS-ConfigureAWSPackage 安装 ENA 网络驱动程序。

      4. aws:runCommand - 通过 AWS-ConfigureAWSPackage 安装 NVMe 驱动程序。

      5. aws:runCommand - 通过 AWS-ConfigureAWSPackage 安装 AWS PV 驱动程序。

    2. (离线升级)如果输入实例不为托管实例:

      1. aws:assertAwsResourceProperty - 验证 AllowOffline 标志是否设置为 True。如果是,则启动离线升级,否则工作流程结束。

      2. aws:changeInstanceState - 停止源实例。

      3. aws:changeInstanceState - 强制停止源实例。

      4. aws:createImage - 创建源实例的 AMI 备份。

      5. aws:createTags - 标记源实例的 AMI 备份。

      6. aws:executeAwsApi - 为实例启用 ENA

      7. aws:assertAwsResourceProperty - 断言 ForceUpgrade 标志。

      8. (强制离线升级)如果 ForceUpgrade = True,则运行 aws:executeAutomation 来使用驱动程序强制升级脚本调用 AWSSupport-StartEC2RescueWorkflow。不管当前安装的是何种版本,都将安装驱动程序

      9. (离线升级)如果 ForceUpgrade = False,则运行 aws:executeAutomation 来使用驱动程序升级脚本调用 AWSSupport-StartEC2RescueWorkflow。

输出

preUpgradeBackup.ImageId

preOfflineUpgradeBackup.ImageId

installAwsEnaNetworkDriverOnInstance.Output

installAWSNVMeOnInstance.Output

installAWSPVDriverOnInstance.Output

upgradeDriversOffline.Output

forceUpgradeDriversOffline.Output