演练:创建维护时段以自动更新 SSM Agent(控制台)
以下演练向您演示了如何使用 AWS Systems Manager 控制台创建维护时段。本演练还介绍了如何将您的托管式节点注册为目标,以及如何注册 Systems Manager Run Command 任务来更新 SSM Agent。
开始前的准备工作
您必须拥有要配置的节点的管理员权限,或必须已获得 AWS Identity and Access Management (IAM) 中的适当权限,才能完成以下过程。此外,请验证并确保在为 Systems Manager 配置的混合和多云环境中至少有一个正在运行的 Linux 或 Windows Server 托管式节点。有关更多信息,请参阅 设置 AWS Systems Manager。
步骤 1:创建维护时段(控制台)
创建维护时段(控制台)
访问 https://console.aws.amazon.com/systems-manager/
,打开 AWS Systems Manager 控制台。 -
在导航窗格中,选择 Maintenance Windows。
-
选择 Create maintenance window。
-
对于 Name (名称),请输入描述性名称,以帮助您标识此维护时段。
-
(可选)对于描述,输入描述。
-
如果您希望即便没有将托管式节点注册为目标,也允许维护时段任务在这些节点上运行,则选择 Allow unregistered targets(允许未注册的目标)。如果选择了此选项,您在将任务注册到维护时段时便可以选择已注销节点(按节点 ID)。
如果未选择此选项,您在将任务注册到维护时段时就必须选择之前注册的目标。
-
使用三个计划选项之一为维护时段指定计划。
有关构建 cron/rate 表达式的信息,请参阅 参考:适用于 Systems Manager 的 Cron 和 Rate 表达式。
-
对于持续时间,输入维护时段应该运行的小时数。
-
在停止启动任务中,输入系统应该在维护时段结束前几小时停止计划要运行的新任务。
-
(可选)对于 Window start date - optional (时段开始日期 - 可选),请以 ISO-8601 扩展格式指定您希望维护时段变为活动状态的日期和时间。这让您可以将维护时段的激活时间推迟到指定的将来日期。
注意
您无法指定过去发生的开始日期和时间。
-
(可选)对于 Window end date - optional (时段结束日期 - 可选),请以 ISO-8601 扩展格式指定您希望维护时段变为不活动状态的日期和时间。这样可以设置在某个未来的日期和时间后不再运行维护时段。
-
(可选)对于 Schedule time zone - optional (计划时区 - 可选),请以互联网编号分配机构 (IANA) 格式指定时区,计划的维护时段执行将基于该时区。例如:“America/Los_Angeles”、“etc/UTC”或“Asia/Seoul”。
有关有效格式的更多信息,请参阅 IANA 网站上的 Time Zone Database
。 -
(可选)在管理标签区域,将一个或多个标签键名称/值对应用到维护时段。
标签是您分配给资源的可选元数据。标签运行您按各种标准(如用途、所有者或环境)对资源进行分类。例如,您可能需要标记维护时段来标识它所运行的任务的类型、目标类型和它所运行的环境。在这种情况下,您可以指定以下键名/键值对:
-
Key=TaskType,Value=AgentUpdate
-
Key=OS,Value=Windows
-
Key=Environment,Value=Production
-
-
选择 Create maintenance window。系统将返回维护时段页面。您刚创建的维护时段处于 Enabled (已启用) 状态。
步骤 2:注册维护时段目标(控制台)
使用以下过程向您在步骤 1 中创建的维护时段注册目标。通过注册目标,您需指定要更新的节点。
为维护时段分配目标(控制台)
-
在维护时段列表中,选择您刚刚创建的维护时段。
-
选择 Actions,然后选择 Register targets。
-
(可选)对于 Target Name (目标名称),请输入目标的名称。
-
(可选)对于描述,输入描述。
-
(可选)对于 Owner information (所有者信息),指定您的名称或工作别名。在此维护时段内,为这些目标运行任务时引发的任何 Amazon EventBridge 事件中都包含所有者信息。
有关使用 EventBridge 监控 Systems Manager 事件的信息,请参阅 使用 Amazon EventBridge 监控 Systems Manager 事件。
-
在目标区域中,选择下表中所述的选项之一。
选项 描述 指定实例标签
对于 Specify instance tags(指定实例标签)框,请指定已经或将要添加到您账户中的托管式节点的一个或多个标签键和(可选)值。当维护时段运行时,它会尝试在这些标签添加到的所有托管式节点上执行任务。
如果您指定了多个标签键,则必须使用您指定的所有标签键和值来标记节点,才能将该节点包含在目标组中。
手动选择节点
从列表中,选中要包含在维护时段目标中的每个节点所对应的框。
该列表包括您的账户中配置为用于 Systems Manager 的所有节点。
如果未列出您希望看到的托管式节点,请参阅 排除托管式节点可用性的问题 以获取故障排除技巧。
有关边缘设备、本地服务器和虚拟机(VM),请参阅 在混合和多云环境中使用 Systems Manager
选择资源组
对于资源组,从列表中选择您的账户中现有资源组的名称。
有关创建和使用资源组的信息,请参阅以下主题:
-
AWS Resource Groups 用户指南中的什么是资源组?
-
AWS 新闻博客中的 AWS Resource Groups 和标记
对于资源类型,最多可选择五种可用资源类型,或选择所有资源类型。
如果您分配给维护时段的任务不对您添加到目标的其中一种资源类型执行操作,系统可能会报告错误。尽管存在这些错误,但找到了支持的资源类型的任务仍会继续运行。
例如,假设您将以下资源类型添加到此目标:
-
AWS::S3::Bucket
-
AWS::DynamoDB::Table
-
AWS::EC2::Instance
但后来,当您将任务添加到维护时段时,您只包括对节点执行操作的任务,例如应用补丁基准或重启节点。在维护时段日志中,可能会报告未找到 Amazon Simple Storage Service (Amazon S3) 存储桶或 Amazon DynamoDB 表的错误。但是,维护时段仍会在资源组中的节点上运行任务。
-
-
选择注册目标。
步骤 3:为维护时段注册 Run Command 任务以更新 SSM Agent(控制台)
使用以下过程为您在步骤 1 中创建的维护时段注册 Run Command 任务。Run Command 任务更新已注册目标上的 SSM Agent。
为维护时段分配任务(控制台)
-
在维护时段列表中,选择您刚刚创建的维护时段。
-
选择 Actions (操作),然后选择 Register Run command task (注册运行命令任务)。
-
(可选)对于 Name (名称),请输入任务的名称,例如 UpdateSSMAgent。
-
(可选)对于描述,输入描述。
-
在 Command document (命令文档) 区域中,选择 SSM Command 文档
AWS-UpdateSSMAgent
。注意
如果您在前面的步骤中注册的目标是 Windows Server 2012 R2 或更早版本,则必须使用
AWS-UpdateEC2Config
文档。 -
对于 Document Version (文档版本),选择要使用的文档版本。
-
对于 Task priority (任务优先级),指定此任务的优先级。零 (
0
) 表示最高优先级。维护时段中的任务按优先级顺序计划,具有相同优先级的任务则并行计划。 -
在 Targets(目标)部分中,选择 Selecting registered target groups(选择已注册的目标组)或 Selecting unregistered targets(选择未注册的目标),标识要在其上运行此操作的节点。
对于 Rate control(速率控制):
-
对于 Concurrency(并发),请指定要同时运行该命令的托管式节点的数量或百分比。
注意
如果您通过指定应用于托管式节点的标签或指定 AWS Resource Groups 来选择目标,但不确定有多少个托管式节点已被设为目标,则可通过指定百分比来限制可同时运行该文档的目标的数量。
-
对于 Error threshold(错误阈值),请指定当命令在一定数量或百分比的节点上失败后,何时在其他托管式节点上停止运行该命令。例如,如果您指定三个错误,Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。
-
-
(可选)对于 IAM 服务角色,选择一个角色以向 Systems Manager 提供运行维护时段任务时所承担的权限。
如果您未指定服务角色 ARN,Systems Manager 将使用您账户中的服务相关角色。如果您的账户中没有适用于 Systems Manager 的适当服务相关角色,则将在成功注册任务后创建该角色。
注意
为了改善安全状况,强烈建议您创建自定义策略和自定义服务角色来运行维护时段任务。可以精心设计该策略,只提供特定维护时段任务所需的权限。有关更多信息,请参阅 使用控制台配置维护时段权限。
-
(可选)对于 Output options (输出选项),请执行以下操作之一:
-
选中 Enable writing to S3 (启用写入到 S3) 复选框,将命令输出保存到文件。在输入框中输入存储桶和前缀(文件夹)名称。
注意
授予将数据写入 S3 存储桶的能力的 S3 权限,是分配给节点的实例配置文件的权限,而不是执行此任务的用户的权限。有关更多信息,请参阅配置 Systems Manager 所需的实例权限。此外,如果指定的 S3 存储桶位于不同的 AWS 账户 中,请确认与该节点关联的实例配置文件具有写入该存储桶的所需权限。
-
选中 CloudWatch output (CloudWatch 输出) 复选框,将完整的输出写入到 Amazon CloudWatch Logs。输入 CloudWatch Logs 日志组的名称。
-
-
在 SNS notifications (SNS 通知) 部分中,您可以选择性地允许 Systems Manager 使用 Amazon Simple Notification Service (Amazon SNS) 发送有关命令状态的通知。如果您选择启用此选项,您需要指定以下各项:
-
用于启动 Amazon SNS 通知的 IAM 角色。
-
要使用的 Amazon SNS 主题。
-
您希望接收通知的特定事件类型。
-
您希望在命令状态发生更改时接收的通知类型。对于发送到多个节点的命令,选择 Invocation(调用)来在每个调用的状态发生更改时按调用(每个节点)接收通知。
-
-
在 Parameters (参数) 区域中,您可以选择性地提供要安装的特定 SSM Agent 版本,或者您可以允许 SSM Agent 服务降级到早期版本。但是,在本演练中,我们不提供版本。因此,SSM Agent 将更新到最新版本。
-
选择注册运行命令任务。