演练:自动更新 SSM Agent (CLI) - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

演练:自动更新 SSM Agent (CLI)

以下过程将指导您完成使用 Amazon Command Line Interface创建 State Manager 关联的过程。关联会根据您指定的计划自动更新 SSM Agent。有关 SSM Agent 的更多信息,请参阅 使用 SSM Agent。若要使用控制台自定义 SSM Agent,请参阅 自动更新 SSM Agent

要收到SSM Agent更新通知,请订阅上的 “SSM Agent发行说明” 页面GitHub。

开始前的准备工作

在完成以下过程之前,请确认您至少有一个适用于 Linux、macOS ,或针对 Systems Manager 而配置的 Windows Server 的 Amazon Elastic Compute Cloud (Amazon EC2)实例正在运行。有关更多信息,请参阅 设置 Amazon Systems Manager

如果您使用 Amazon CLI 或创建关联 Amazon Tools for Windows PowerShell,请使用--Targets参数来定位实例,如以下示例所示。不要使用 --InstanceID 参数。--InstanceID 参数是一个旧参数。

创建关联以实现 SSM Agent 的自动更新
  1. 安装并配置 Amazon Command Line Interface (Amazon CLI)(如果尚未安装)。

    有关信息,请参阅安装或更新 Amazon CLI的最新版本

  2. 运行以下命令,通过使用 Amazon Elastic Compute Cloud (Amazon EC2) 标签将实例设为目标来创建关联。将每个示例资源占位符替换为您自己的信息。Schedule 参数可以设置一个计划,以在每周日凌晨 2:00 (UTC) 运行 关联。

    State Manager 关联不支持所有的 cron 和 rate 表达式。有关为关联创建 cron 和 rate 表达式的更多信息,请参阅 参考:适用于 Systems Manager 的 Cron 和 Rate 表达式

    Linux & macOS
    aws ssm create-association \ --targets Key=tag:tag_key,Values=tag_value \ --name AWS-UpdateSSMAgent \ --schedule-expression "cron(0 2 ? * SUN *)"
    Windows
    aws ssm create-association ^ --targets Key=tag:tag_key,Values=tag_value ^ --name AWS-UpdateSSMAgent ^ --schedule-expression "cron(0 2 ? * SUN *)"

    您可以通过在以逗号分隔的列表中指定实例 ID 来将多个实例设为目标。

    Linux & macOS
    aws ssm create-association \ --targets Key=instanceids,Values=instance_ID,instance_ID,instance_ID \ --name AWS-UpdateSSMAgent \ --schedule-expression "cron(0 2 ? * SUN *)"
    Windows
    aws ssm create-association ^ --targets Key=instanceids,Values=instance_ID,instance_ID,instance_ID ^ --name AWS-UpdateSSMAgent ^ --schedule-expression "cron(0 2 ? * SUN *)"

    您可以指定要更新到的 SSM Agent 版本。

    Linux & macOS
    aws ssm create-association \ --targets Key=instanceids,Values=instance_ID,instance_ID,instance_ID \ --name AWS-UpdateSSMAgent \ --schedule-expression "cron(0 2 ? * SUN *)" \ --parameters version=ssm_agent_version_number
    Windows
    aws ssm create-association ^ --targets Key=instanceids,Values=instance_ID,instance_ID,instance_ID ^ --name AWS-UpdateSSMAgent ^ --schedule-expression "cron(0 2 ? * SUN *)" ^ --parameters version=ssm_agent_version_number

    系统将返回类似于以下内容的信息。

    {
        "AssociationDescription": {
            "ScheduleExpression": "cron(0 2 ? * SUN *)",
            "Name": "AWS-UpdateSSMAgent",
            "Overview": {
                "Status": "Pending",
                "DetailedStatus": "Creating"
            },
            "AssociationId": "123..............",
            "DocumentVersion": "$DEFAULT",
            "LastUpdateAssociationDate": 1504034257.98,
            "Date": 1504034257.98,
            "AssociationVersion": "1",
            "Targets": [
                {
                    "Values": [
                        "TagValue"
                    ],
                    "Key": "tag:TagKey"
                }
            ]
        }
    }

    系统将尝试在实例上创建关联并在创建后应用状态。关联状态显示 Pending

  3. 运行以下命令查看您创建的关联的更新状态。

    aws ssm list-associations

    如果您的实例没有运行 SSM Agent 的最新版本,则状态将显示 Failed。发布 SSM Agent 的新版本时,关联将自动安装新代理,而且状态将显示 Success