Mettre à jour une AMI Windows Server - 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.

Mettre à jour une AMI Windows Server

Le runbook AWS-UpdateWindowsAmi vous permet d'automatiser les tâches de maintenance d'images sur vos Amazon Machine Image (AMI) Windows Amazon sans devoir créer le flux de travail en JSON ou YAML. Ce runbook est pris en charge pour Windows Server 2008 R2 ou une version ultérieure. Vous pouvez utiliser le runbook AWS-UpdateWindowsAmi pour effectuer les types de tâche suivants.

  • Installez toutes les mises à jour Windows et mettez à niveau les logiciels Amazon (comportement par défaut).

  • Installez toutes les mises à jour Windows spécifiques et mettez à niveau les logiciels Amazon.

  • Personnalisez une AMI en utilisant vos scripts.

Avant de commencer

Avant de commencer à travailler avec des runbooks, configurez des rôles pour Automation afin d'ajouter une politique iam:PassRole qui référence l'ARN du profil d'instance auquel vous souhaitez octroyer l'accès. Vous pouvez éventuellement configurer Amazon EventBridge for Automation, une fonctionnalité de AWS Systems Manager. Pour plus d’informations, consultez Configuration d'Automation. Cette procédure pas à pas nécessite également que vous spécifiiez le nom d'un profil d'instance AWS Identity and Access Management (IAM). Pour plus d'informations sur la création d'un profil d'instance IAM, consultez Configurer les autorisations d'instance requises pour Systems Manager.

Note

Les mises à jour de AWS Systems Manager SSM Agent sont généralement déployées dans différentes régions, à des heures différentes. Lorsque vous personnalisez ou mettez à jour une AMI, utilisez uniquement les AMI source publiées pour la région dans laquelle vous travaillez. Vous aurez ainsi l'assurance de travailler avec le dernier agent SSM Agent publié pour cette région, et vous éviterez des problèmes de compatibilité.

Le runbook AWS-UpdateWindowsAmi accepte les paramètres d'entrée suivants.

Paramètre Type Description

SourceAmiId

Chaîne

(Obligatoire) L'ID d'AMI source. Vous pouvez référencer automatiquement le dernier ID d'AMI Windows Server à l'aide d'un paramètre Systems Manager public Parameter Store. Pour plus d'informations, consultez Requête portant sur les derniers ID d'AMI Windows à l'aide de AWS Systems ManagerParameter Store.

SubnetId

Chaîne

(Facultatif) Le sous-réseau dans lequel vous souhaitez lancer l'instance temporaire. Vous devez spécifier une valeur pour ce paramètre si vous avez supprimé votre VPC par défaut.

IamInstanceProfileName

Chaîne

(Obligatoire) Nom du rôle de profil d'instance IAM que vous avez créé dans Configure les autorisations d'instance requises pour Systems Manager. Le rôle de profil d'instance autorise Automation à effectuer des actions sur vos instances, comme l'exécution de commandes, ou le démarrage ou l'arrêt de services. Le runbook utilise uniquement le nom du rôle de profil d'instance.

AutomationAssumeRôle

Chaîne

(Obligatoire) Le nom du rôle de service IAM que vous avez créé dans Configuration d'Automation. Le rôle de service (également appelé rôle de responsable) accorde à Automation l'autorisation d'assumer votre rôle IAM et d'exécuter des actions en votre nom. Par exemple, le rôle de service autorise Automation à créer une nouvelle AMI lors de l'exécution de l'action aws:createImage dans un runbook. Pour ce paramètre, l'ARN complet doit être spécifié.

TargetAmiNom

Chaîne

(Facultatif) Nom de la nouvelle AMI une fois celle-ci créée. Le nom par défaut est une chaîne générée par le système qui inclut l'ID de l'AMI source, et les date et heure de création.

InstanceType

Chaîne

(Facultatif) Type d'instance à lancer en tant qu'hôte d'espace de travail. Les types d'instances varient selon la région. La type par défaut est t2.medium.

PreUpdateScénario

Chaîne

(Facultatif) Un script à exécuter avant la mise à jour de l'AMI. Saisissez un script dans le runbook ou lors de l'exécution en tant que paramètre.

PostUpdateScénario

Chaîne

(Facultatif) Un script à exécuter après la mise à jour de l'AMI. Saisissez un script dans le runbook ou lors de l'exécution en tant que paramètre.

IncludeKbs

Chaîne

(Facultatif) Spécifiez un ou plusieurs ID d'articles Microsoft Knowledge Base (KB) à inclure. Vous pouvez installer plusieurs ID en utilisant des valeurs séparées par une virgule. Formats valides : KB9876543 ou 9876543.

ExcludeKbs

Chaîne

(Facultatif) Spécifiez un ou plusieurs ID d'articles Microsoft Knowledge Base (KB) à exclure. Vous pouvez exclure plusieurs ID en utilisant des valeurs séparées par une virgule. Formats valides : KB9876543 ou 9876543.

Catégories

Chaîne

(Facultatif) Spécifiez une ou plusieurs catégories de mise à jour. Vous pouvez filtrer les catégories en utilisant des valeurs séparées par une virgule. Options : Mise à jour critique, Mise à jour de la sécurité, Mise à jour de la définition, Report de mise à jour, Service Pack, Outil, Mise à jour, ou Pilote. Parmi les formats valides, on compte une seule entrée comme : Critical Update. Ou, vous pouvez spécifier une liste avec des éléments séparés par des virgules : Mise à jour critique, Mise à jour de la sécurité, Mise à jour de la définition.

SeverityLevels

Chaîne

(Facultatif) Spécifiez un ou plusieurs niveaux de sécurité MSRC associés à une mise à jour. Vous pouvez filtrer les niveaux de sécurité en utilisant des valeurs séparées par une virgule. Options : Critique, Important, Faible, Modéré ou Non précisé. Parmi les formats valides, on compte une seule entrée comme : Critique. Ou, vous pouvez spécifier une liste avec des éléments séparés par des virgules : Critique, Important, Faible.

Étapes d'Automation

Le runbook AWS-UpdateWindowsAmi inclut les étapes suivantes par défaut.

Étape 1 : launchInstance (action aws:runInstances)

Cette étape lance une instance avec un rôle de profil d'instance IAM à partir du SourceAmiID spécifié.

Étape 2 : runPreUpdate Script (aws:runCommandaction)

Cette étape vous permet de spécifier un script comme chaîne exécutée avant l'installation des mises à jour.

Étape 3 : updateEC2Config (action aws:runCommand)

Cette étape utilise le AWS-InstallPowerShellModule runbook pour télécharger un PowerShell module AWS public. Systems Manager vérifie l'intégrité du module via un hachage SHA-256. Systems Manager vérifie ensuite le système d'exploitation afin de déterminer s'il faut mettre à jour EC2Config ou EC2Launch. EC2Config s'exécute sur Windows Server 2008 R2 via Windows Server 2012 R2. EC2Launch s'exécute sur Windows Server 2016.

Étape 4 : updateSSMAgent (action aws:runCommand)

Cette étape met à jour SSM Agent à l'aide du runbook AWS-UpdateSSMAgent.

Étape 5 : mise à jour AWSPVDriver (aws:runCommandaction)

Cette étape met à jour les pilotes AWS PV à l'aide du AWS-ConfigureAWSPackage runbook.

Étape 6 : updateAwsEna NetworkDriver (aws:runCommandaction)

Cette étape met à jour les pilotes réseau AWS ENA à l'aide du AWS-ConfigureAWSPackage runbook.

Étape 7 : installWindowsUpdates (aws:runCommandaction)

Cette étape installe les mises à jour Windows à l'aide du runbook AWS-InstallWindowsUpdates. Par défaut, Systems Manager recherche et installe l'ensemble des mises à jour manquantes. Vous pouvez modifier le comportement par défaut en spécifiant l'un des paramètres suivants : IncludeKbs, ExcludeKbs, Categories, ou SeverityLevels.

Étape 8 : runPostUpdate Script (aws:runCommandaction)

Cette étape vous permet de spécifier un script comme chaîne qui est exécutée après l'installation des mises à jour.

Étape 9 : runSysprepGeneralize (aws:runCommandaction)

Cette étape utilise le AWS-InstallPowerShellModule runbook pour télécharger un PowerShell module AWS public. Systems Manager vérifie l'intégrité du module via un hachage SHA-256. Systems Manager exécute ensuite sysprep à l'aide de méthodes AWS prises en charge pour EC2Launch (Windows Server 2016) ou EC2Config (Windows Server 2008 R2 à 2012 R2).

Étape 10 : stopInstance (action aws:changeInstanceState)

Cette étape arrête toutes les instances mises à jour.

Étape 11 : createImage (action aws:createImage)

Cette étape crée une nouvelle AMI avec un nom descriptif qui la relie à l'ID source et l'heure de création. Par exemple : « AMI générée par EC2 Automation le {{global:Date_time}} à partir de {{Id}} » où DATE_TIME et SourceAmi sourceId représentent les variables d'automatisation.

Étape 12 : TerminateInstance (aws:changeInstanceStateaction)

Cette étape nettoie l'automatisation en mettant hors service l'instance en cours d'exécution.

Sortie

Cette section vous permet de désigner les sorties de différentes étapes ou valeurs de n'importe quel paramètre comme sortie d'Automation. Par défaut, la sortie est l'ID des AMI Windows mises à jour créées par l'automatisation.

Note

Par défaut, lorsqu'Automation exécute le runbook AWS-UpdateWindowsAmi et crée une instance temporaire, le système utilise le VPC par défaut (172.30.0.0/16). Si vous avez supprimé le VPC par défaut, vous recevrez l'erreur suivante :

VPC non défini 400

Pour régler ce problème, vous devez réaliser une copie du runbook AWS-UpdateWindowsAmi et spécifier un ID de sous-réseau. Pour plus d’informations, consultez VPC non défini 400.

Pour créer une AMI Windows corrigée à l'aide d'Automation
  1. Installez et configurez le AWS Command Line Interface (AWS CLI), si ce n'est pas déjà fait.

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

  2. Exécutez la commande suivante pour exécuter le runbook AWS-UpdateWindowsAmi. Remplacez chaque example resource placeholder (espace réservé pour les ressources) avec vos propres informations. L'exemple de commande ci-dessous utilise une AMI Amazon EC2 récente afin de réduire le nombre de correctifs à appliquer. Si vous exécutez cette commande plus d'une fois, vous devez spécifier une valeur unique pour targetAMIname. Les noms des AMI doivent être uniques.

    aws ssm start-automation-execution \ --document-name="AWS-UpdateWindowsAmi" \ --parameters SourceAmiId='AMI ID',IamInstanceProfileName='IAM instance profile',AutomationAssumeRole='arn:aws:iam::{{global:ACCOUNT_ID}}:role/AutomationServiceRole'

    La commande renvoie un ID d'exécution. Copiez cet ID dans le Presse-papiers. Vous utiliserez cet ID pour afficher le statut de l'automatisation.

    {
        "AutomationExecutionId": "automation execution ID"
    }
  3. Pour visualiser l'automatisation à l'aide de AWS CLI, exécutez la commande suivante :

    aws ssm describe-automation-executions
  4. Pour afficher les détails de la progression de l'automatisation, exécutez la commande suivante.

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

En fonction du nombre de correctifs appliqués, le processus de mise à jour corrective Windows exécuté dans cet exemple d'automatisation peut prendre 30 minutes ou plus pour se terminer.