Procédure : Créer une fenêtre de maintenance pour mettre à jour l'SSM Agent (AWS CLI) - AWS Systems Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Procédure : Créer une fenêtre de maintenance pour mettre à jour l'SSM Agent (AWS CLI)

La procédure suivante vous montre comment utiliser l'AWS Command Line Interface (AWS CLI) pour créer une fenêtre de maintenance AWS Systems Manager. La démonstration explique également comment enregistrer des nœuds gérés en tant que cibles et comment enregistrer une tâche Systems Manager Run Command pour procéder à la mise à jour de SSM Agent.

Avant de commencer

Pour suivre la procédure ci-dessous, vous devez disposer d'autorisations administrateur sur les nœuds que vous souhaitez configurer, ou bénéficier des autorisations appropriées dans AWS Identity and Access Management (IAM). Vérifiez en outre que vous avez au moins un nœud exécuté géré pour Linux ou Windows Server configuré pour Systems Manager dans un environnement hybride et multicloud. Pour de plus amples informations, veuillez consulter Con AWS Systems Manager figuration.

Étape 1 : Mise en route

Pour exécuter des commandes à l'aide de l'AWS CLI
  1. Si vous ne l'avez pas déjà fait, installez et configurez l'AWS Command Line Interface (AWS CLI).

    Pour de plus amples informations, consultez Installation ou mise à jour de la version la plus récente de l'AWS CLI.

  2. Vérifiez qu'un nœud est prêt à être enregistré comme cible d'une fenêtre de maintenance.

    Exécutez la commande suivante pour afficher les nœuds qui sont en ligne.

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

    Exécutez la commande suivante pour afficher les détails relatifs à un nœud particulier.

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

Étape 2 : Création de la fenêtre de maintenance

Utilisez la procédure suivante pour créer une fenêtre de maintenance et spécifier ses options de base, telles que la planification et la durée.

Créer une fenêtre de maintenance (AWS CLI)
  1. Ouvrez l'AWS CLI et exécutez les commandes suivantes pour créer une fenêtre de maintenance qui s'exécute toutes les semaines le dimanche à 2 h 00, dans le fuseau horaire États-Unis/Pacifique, avec une coupure d'une heure.

    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

    Pour de plus amples informations sur la création d'expressions cron pour le paramètre schedule, consultez Référence : Expressions Cron et Rate pour Systems Manager.

    Pour obtenir une explication des relations entre les différentes options liées à la planification pour les fenêtres de maintenance, consultez Options de planification de la fenêtre de maintenance et de période active.

    Pour de plus amples informations sur l'utilisation de l'option --schedule, consultez Référence : Expressions Cron et Rate pour Systems Manager.

    Le système retourne des informations telles que les suivantes.

    {
       "WindowId":"mw-0c50858d01EXAMPLE"
    }
  2. Pour répertorier les fenêtres de maintenance créées dans votre Compte AWS dans votre Région AWS actuelle, exécutez la commande suivante.

    aws ssm describe-maintenance-windows

    Le système retourne des informations telles que les suivantes.

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

Étape 3 : Enregistrement des cibles de fenêtre de maintenance (AWS CLI)

Utilisez la procédure suivante pour enregistrer une cible avec votre fenêtre de maintenance créée à l'étape 2. En enregistrant une cible, vous spécifiez les nœuds à mettre à jour.

Pour enregistrer des cibles de fenêtre de maintenance (AWS CLI)
  1. Exécutez la commande suivante. Remplacez chaque example resource placeholder (espace réservé pour les ressources) avec vos propres informations.

    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"

    Le système renvoie des informations similaires à celles qui suivent, qui incluent un ID de cible de fenêtre de maintenance. Copiez ou notez la valeur WindowTargetId. Vous devrez spécifier cet ID à l'étape suivante pour enregistrer une tâche pour cette fenêtre de maintenance.

    {
       "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2"
    }
    Autres commandes

    Utilisez la commande suivante pour enregistrer plusieurs nœuds gérés.

    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"

    Utilisez la commande suivante pour enregistrer les nœuds à l'aide de balises.

    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. Utilisez la commande suivante pour afficher les cibles d'une fenêtre de maintenance.

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

    Le système retourne des informations telles que les suivantes.

    {
        "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"
            }
        ]
    }

Étape 4 : Enregistrement d'une tâche Run Command pour que la fenêtre de maintenance mette à jour SSM Agent

Utilisez la procédure suivante pour enregistrer une tâche Run Command pour la fenêtre de maintenance que vous avez créée à l'étape 2. La tâche Run Command met à jour l'SSM Agent sur les cibles enregistrées.

Pour enregistrer une tâche Run Command pour une fenêtre de maintenance à mettre à jour SSM Agent (AWS CLI)
  1. Exécutez la commande suivante pour enregistrer une tâche Run Command pour la fenêtre de maintenance à l'aide de la valeur WindowTargetId notée à l'étape 3. Remplacez chaque example resource placeholder (espace réservé pour les ressources) avec vos propres informations. La tâche met à jour l'SSM Agent en utilisant le document 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
    Note

    Si les cibles que vous avez enregistrées à l'étape précédente sont des cibles Windows Server 2012 R2 ou version antérieure, vous devez utiliser le document AWS-UpdateEC2Config.

    Le système retourne des informations telles que les suivantes.

    {
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
    }
  2. Exécutez la commande suivante pour afficher toutes les tâches enregistrées pour une fenêtre de maintenance.

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

    Le système retourne des informations telles que les suivantes.

    {
        "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"
            }
        ]
    }