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

Automation 控制台演练:修补 Linux AMI

此 Systems Manager Automation 演练将介绍如何使用控制台和 Systems Manager AWS-UpdateLinuxAmi 文档来通过您指定的最新版本的程序包自动修补 Linux AMI。您可以使用此演练更新以下任一 Linux 版本:Ubuntu、CentOS、RHEL、SLES 或 Amazon Linux AMI。AWS-UpdateLinuxAmi 文档也能自动安装其他具体站点相关的程序包和配置。

演练显示如何在运行时为 AWS-UpdateLinuxAmi 文档指定参数。如果您希望向自动化添加步骤或指定默认值,您可以使用 AWS-UpdateLinuxAmi 文档作为模板。

有关使用 Systems Manager 文档的更多信息,请参阅 AWS Systems Manager 文档。有关您可以添加到文档的操作的信息,请参阅 Systems Manager 自动化文档参考

在运行 AWS-UpdateLinuxAmi 文档时,Automation 会执行以下任务。

  1. 从 Linux AMI 启动临时 Amazon EC2 的实例。使用安装 SSM 代理的用户数据脚本配置实例。SSM 代理运行从 Systems Manager Run Command 远程发送的脚本。

  2. 通过执行以下操作更新实例:

    1. (可选) 在实例上调用用户提供的更新前脚本。

    2. 更新实例上的 AWS 工具 (如果有)。

    3. 使用本地程序包管理器,更新实例上的分配程序包。

    4. (可选) 在实例上调用用户提供的更新后脚本。

  3. 停止临时实例。

  4. 从已停止的实例创建新 AMI。

  5. 终止实例。

在 Automation 成功完成此工作流程后,即可在 AMI 页面上的控制台中使用新 AMI。

重要

如果使用 Automation 从一个实例创建 AMI,请注意,实例上的证书、密码、数据或者其他保密信息都会记录在新映像中。在从实例创建 AMI 时,请务必小心。

在您开始使用 Automation 时,请注意以下限制。

  • Automation 不执行资源清除。在示例工作流中,当您的工作流步骤达到最终的实例终止步骤之前停止时,您可能需要手动停止实例或者禁用 Automation 工作流运行期间启动的服务。

  • 如果您将用户数据用于 Automation,则用户数据必须为 base-64 编码。

  • Automation 保留执行记录 30 天。

  • Systems Manager 和 Automation 具有以下服务限制

开始前的准备工作

创建 AWS Identity and Access Management (IAM) 实例配置文件角色和 Automation 服务角色 (或代入角色)。有关这些角色以及如何从 AWS CloudFormation 模板快速创建角色的更多信息,请参阅 方法 1:使用 AWS CloudFormation 为 Automation 配置角色

我们建议您在开始前同时收集以下消息。

  • 要更新的 AMI 的源 ID。

  • (可选) 在更新前应用要运行的脚本的 URL。

  • (可选) 在更新后应用要运行的脚本的 URL。

  • (可选) 要更新的特定程序包的名称。默认情况下,Automation 会更新所有程序包。

  • (可选) 要从更新中排除的特定程序件包名称。

注意

默认情况下,当 Automation 运行 AWS-UpdateLinuxAmi 文档时,系统会在默认 VPC (172.30.0.0/16) 中创建一个临时实例。如果您删除了默认 VPC,会收到以下错误:

VPC not defined 400

要解决此问题,您必须复制 AWS-UpdateLinuxAmi 文档并指定子网 ID。有关更多信息,请参阅 VPC not defined 400

使用 Automation 创建经过修补的 AMI ()

  1. https://console.amazonaws.cn/systems-manager/ 上打开 AWS Systems Manager 控制台。

  2. 在导航窗格中,选择 Automation

    -或者-

    如果 AWS Systems Manager 主页首先打开,请选择菜单图标 ( ) 以打开导航窗格,然后选择 Automation

  3. 选择执行自动化

  4. 自动化文档列表中,选择 AWS-UpdateLinuxAmi

  5. 文档详细信息部分,确认文档版本是否设置为 1

  6. 执行模式部分中,选择一次执行整个自动化

  7. 保留目标和速率控制选项为禁用状态。

  8. Input parameters 部分,输入在准备工作部分收集的信息。

  9. 选择执行自动化。控制台将显示 Automation 执行的状态。

在工作流完成后,请从更新后的 AMI 启动测试实例以验证更改。

注意

如果工作流有任何步骤失败,则 Automation Executions 页面上会列出有关失败的信息。工作流设计为在成功完成所有任务后终止临时实例。如果步骤失败,系统可能不会终止实例。因此,如果某个步骤失败,请手动终止临时实例。