Spiegazione passo per passo: creazione di una finestra di manutenzione per aggiornare l'SSM Agent (AWS CLI) - AWS Systems Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Spiegazione passo per passo: creazione di una finestra di manutenzione per aggiornare l'SSM Agent (AWS CLI)

La procedura guidata seguente mostra come utilizzare l'AWS Command Line Interface (AWS CLI) per creare una finestra di manutenzione AWS Systems Manager. La procedura guidata descrive anche come registrare i tuoi nodi gestiti come destinazioni e come registrare un'attività Run Command di Systems Manager per l'aggiornamento dell'SSM Agent.

Prima di iniziare

Per completare la procedura seguente, è necessario disporre delle autorizzazioni di amministratore sui nodi da configurare oppure delle autorizzazioni appropriate in AWS Identity and Access Management (IAM). Inoltre, verifica che almeno un nodo gestito per Linux sia in esecuzione o che Windows Server sia configurato per Systems Manager in un ambiente ibrido e multicloud. Per ulteriori informazioni, consulta Configurazione AWS Systems Manager.

Fase 1: per iniziare

Per eseguire comandi utilizzando AWS CLI
  1. Se non lo hai ancora fatto, installa e configura AWS Command Line Interface (AWS CLI).

    Per informazioni, consulta la pagina Installazione o aggiornamento della versione più recente di AWS CLI.

  2. Verificare che un nodo sia pronto per essere registrato come destinazione per una finestra di manutenzione.

    Eseguire il seguente comando per visualizzare i nodi online.

    aws ssm describe-instance-information --query "InstanceInformationList[*]"

    Utilizzare il comando seguente per visualizzare i dettagli su un determinato nodo.

    aws ssm describe-instance-information --instance-information-filter-list key=InstanceIds,valueSet=instance-id

Fase 2: creazione della finestra di manutenzione

Utilizzare la procedura seguente per creare una finestra di manutenzione e specificarne le opzioni di base, ad esempio la pianificazione e la durata.

Creazione di una finestra di manutenzione AWS CLI.
  1. Aprire AWS CLI e utilizzare i comandi seguenti per creare una finestra di manutenzione in esecuzione ogni domenica alle 02:00 nel fuso orario degli Stati Uniti del Pacifico, con un'ora di sospensione.

    Linux & macOS
    aws ssm create-maintenance-window \ --name "My-First-Maintenance-Window" \ --schedule "cron(0 2 ? * SUN *)" \ --duration 2 \ --schedule-timezone "America/Los_Angeles" \ --cutoff 1 \ --no-allow-unassociated-targets
    Windows
    aws ssm create-maintenance-window ^ --name "My-First-Maintenance-Window" ^ --schedule "cron(0 2 ? * SUN *)" ^ --duration 2 ^ --schedule-timezone "America/Los_Angeles" ^ --cutoff 1 ^ --no-allow-unassociated-targets

    Per ulteriori informazioni sulla creazione di espressioni cron per il parametro schedule, consulta Riferimento: espressioni Cron e Rate per Systems Manager.

    Per una spiegazione di come le diverse opzioni relative alla pianificazione per le finestre di manutenzione siano tra loro correlate, consulta Opzioni di pianificazione e periodo attivo per la finestra di manutenzione.

    Per ulteriori informazioni sull'utilizzo dell'opzione --schedule, consulta Riferimento: espressioni Cron e Rate per Systems Manager.

    Il sistema restituisce informazioni simili alle seguenti.

    {
       "WindowId":"mw-0c50858d01EXAMPLE"
    }
  2. Per elencare questa ed eventuali altre finestre di manutenzione create nell'Account AWS della Regione AWS corrente, eseguire questo comando.

    aws ssm describe-maintenance-windows

    Il sistema restituisce informazioni simili alle seguenti.

    {
        "WindowIdentities": [
            {
                "Cutoff": 1,
                "Name": "My-First-Maintenance-Window",
                "NextExecutionTime": "2019-02-03T02:00-08:00",
                "Enabled": true,
                "WindowId": "mw-0c50858d01EXAMPLE",
                "Duration": 2
            }
        ]
    }

Fase 3: registrazione di destinazioni nella finestra di manutenzione (AWS CLI)

Utilizzare la procedura seguente per registrare una destinazione con la finestra di manutenzione creata nella fase 2. Con la registrazione di una destinazione vengono specificate i nodi da aggiornare.

Per registrare le destinazioni di una finestra di manutenzione (AWS CLI)
  1. Esegui il seguente comando. Sostituisci ciascun segnaposto delle risorse di esempio con le tue informazioni.

    Linux & macOS
    aws ssm register-target-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" \ --resource-type "INSTANCE"
    Windows
    aws ssm register-target-with-maintenance-window ^ --window-id "mw-0c50858d01EXAMPLE" ^ --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^ --resource-type "INSTANCE"

    Il sistema restituisce informazioni simili alle seguenti, che includono un ID destinazione della finestra di manutenzione. Copiare o annotare il valore WindowTargetId. Questo ID andrà specificato nella fase successiva per registrare un'attività per questa finestra di manutenzione.

    {
       "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2"
    }
    Comandi alternativi

    Utilizzare il comando seguente per registrare più nodi gestiti.

    Linux & macOS
    aws ssm register-target-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE" \ --resource-type "INSTANCE"
    Windows
    aws ssm register-target-with-maintenance-window ^ --window-id "mw-0c50858d01EXAMPLE" ^ --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE" ^ --resource-type "INSTANCE"

    Utilizzare il comando seguente per registrare i nodi con i tag .

    Linux & macOS
    aws ssm register-target-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --targets "Key=tag:Environment,Values=Prod" "Key=tag:Role,Values=Web" \ --resource-type "INSTANCE"
    Windows
    aws ssm register-target-with-maintenance-window ^ --window-id "mw-0c50858d01EXAMPLE" ^ --targets "Key=tag:Environment,Values=Prod" "Key=tag:Role,Values=Web" ^ --resource-type "INSTANCE"
  2. Eseguire il comando seguente per visualizzare le destinazioni per una finestra di manutenzione.

    aws ssm describe-maintenance-window-targets --window-id "mw-0c50858d01EXAMPLE"

    Il sistema restituisce informazioni simili alle seguenti.

    {
        "Targets": [
            {
                "ResourceType": "INSTANCE",
                "WindowId": "mw-0c50858d01EXAMPLE",
                "Targets": [
                    {
                        "Values": [
                            "i-02573cafcfEXAMPLE"
                        ],
                        "Key": "InstanceIds"
                    }
                ],
                "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            },
            {
                "ResourceType": "INSTANCE",
                "WindowId": "mw-0c50858d01EXAMPLE",
                "Targets": [
                    {
                        "Values": [
                            "Prod"
                        ],
                        "Key": "tag:Environment"
                    },
                    {
                        "Values": [
                            "Web"
                        ],
                        "Key": "tag:Role"
                    }
                ],
                "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            }
        ]
    }

Fase 4: registrazione di un task Run Command per la finestra di manutenzione per aggiornare l'SSM Agent

Utilizzare la procedura seguente per registrare un'attività Run Command per la finestra di manutenzione creata nella fase 2. L'attività Run Command aggiorna l'SSM Agent nelle destinazioni registrate.

Per registrare un'attività Run Command con una finestra di manutenzione per aggiornare l'SSM Agent (AWS CLI)
  1. Eseguire questo comando per registrare un'attività Run Command per la finestra di manutenzione utilizzando il valore WindowTargetId della fase 3. Sostituisci ciascun segnaposto delle risorse di esempio con le tue informazioni. L'attività aggiorna l'SSM Agent utilizzando il documento AWS-UpdateSSMAgent.

    Linux & macOS
    aws ssm register-task-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --task-arn "AWS-UpdateSSMAgent" \ --name "UpdateSSMAgent" \ --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \ --service-role-arn "arn:aws:iam:account-id:role/MW-Role" \ --task-type "RUN_COMMAND" \ --max-concurrency 1 --max-errors 1 --priority 10
    Windows
    aws ssm register-task-with-maintenance-window ^ --window-id "mw-0c50858d01EXAMPLE" ^ --task-arn "AWS-UpdateSSMAgent" ^ --name "UpdateSSMAgent" ^ --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^ --service-role-arn "arn:aws:iam:account-id:role/MW-Role" ^ --task-type "RUN_COMMAND" ^ --max-concurrency 1 --max-errors 1 --priority 10
    Nota

    Se le destinazioni registrate nella fase precedente sono Windows Server 2012 R2 o versioni precedenti, è necessario utilizzare il documento AWS-UpdateEC2Config.

    Il sistema restituisce informazioni simili alle seguenti.

    {
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
    }
  2. Per ottenere un elenco di tutte le attività registrate di una finestra di manutenzione, eseguire il seguente comando.

    aws ssm describe-maintenance-window-tasks --window-id "mw-0c50858d01EXAMPLE"

    Il sistema restituisce informazioni simili alle seguenti.

    {
        "Tasks": [
            {
                "ServiceRoleArn": "arn:aws:iam::111122223333:role/MW-Role",
                "MaxErrors": "1",
                "TaskArn": "AWS-UpdateSSMAgent",
                "MaxConcurrency": "1",
                "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
                "TaskParameters": {},
                "Priority": 10,
                "WindowId": "mw-0c50858d01EXAMPLE",
                "Type": "RUN_COMMAND",
                "Targets": [
                    {
                        "Values": [
                            "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
                        ],
                        "Key": "WindowTargetIds"
                    }
                ],
                "Name": "UpdateSSMAgent"
            }
        ]
    }