Amazon EC2 Systems Manager
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Automation CLI 演练:修补 Linux AMI

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

在运行 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 页面上的 Amazon EC2 控制台中使用新 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 以进行更新。

注意

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

VPC not defined 400

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

使用 Automation 创建经过修补的 AMI

  1. 将 AWS CLI 下载到本地计算机上。

  2. 执行以下命令以运行 AWS-UpdateLinuxAmi 文档和 Automation 工作流。在参数部分,请指定您的 Automation 角色、AMI 源 ID 和 Amazon EC2 实例配置文件角色。

    Copy
    aws ssm start-automation-execution \ --document-name "AWS-UpdateLinuxAmi" \ --parameters \ SourceAmiId=ami-e6d5d2f1

    该命令将会返回执行 ID。请将该 ID 复制到剪贴板。您将使用该 ID 查看工作流的状态。

    Copy
    { "AutomationExecutionId": "ID" }
  3. 要使用 CLI 查看工作流的执行情况,请执行以下命令:

    Copy
    aws ssm describe-automation-executions
  4. 要查看有关执行进程的详细信息,请执行以下命令。

    Copy
    aws ssm get-automation-execution --automation-execution-id ID

    更新过程可能需要 30 分钟或者更久。

    注意

    您也可以在 Amazon EC2 控制台中监控工作流的状态。在执行列表中,选择您刚才运行的执行,然后选择步骤选项卡。该选项卡将显示工作流操作的状态。

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

注意

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