演練:自動更新 SSM Agent (CLI) - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

演練:自動更新 SSM Agent (CLI)

下列程序會逐步解說如何使用 AWS Command Line Interface建立 State Manager 關聯。關聯會根據您指定的排程自動更新 SSM Agent。如需有關 SSM Agent 的詳細資訊,請參閱「使用 SSM Agent」。若要使用主控台自訂 SSM Agent 的更新排程,請參閱 自動更新 SSM Agent

若要收到有關SSM Agent更新的通知,請訂閱的「SSM Agent版本說明」頁面GitHub。

開始之前

在您完成以下程序前,請先驗證您至少有一個已為 Systems Manager 設定的 Linux、macOS 或 Windows Server 的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體在執行中。如需詳細資訊,請參閱 設定 AWS Systems Manager

如果您使用 AWS CLI 或建立關聯 AWS Tools for Windows PowerShell,請使用--Targets參數來鎖定例證的目標,如下列範例所示。請勿使用 --InstanceID 參數。--InstanceID 參數是舊參數。

建立自動更新 SSM Agent的關聯
  1. 安裝和配置 AWS Command Line Interface (AWS CLI),如果你還沒有。

    如需相關資訊,請參閱安裝或更新最新版本的 AWS 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 (成功)。