View a markdown version of this page

Mise à jour AMI - AWS Systems Manager

• Le AWS Systems Manager CloudWatch tableau de bord ne sera plus disponible après le 30 avril 2026. Les clients peuvent continuer à utiliser CloudWatch la console Amazon pour consulter, créer et gérer leurs CloudWatch tableaux de bord Amazon, comme ils le font aujourd'hui. Pour plus d'informations, consultez la documentation Amazon CloudWatch Dashboard.

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.

Mise à jour AMI

Les didacticiels suivants expliquent comment mettre à jour Amazon Machine Image (AMIs) pour inclure les derniers correctifs.

Mettre à jour un système Linux AMI (AWS CLI)

Cette procédure pas à pas AWS Systems Manager d'automatisation vous montre comment utiliser le AWS Command Line Interface (AWS CLI) et le AWS-UpdateLinuxAmi runbook de Systems Manager pour appliquer automatiquement un correctif à un Linux Amazon Machine Image (AMI) avec les dernières versions des packages que vous spécifiez. Automation est un outil d’ AWS Systems Manager. Le runbook AWS-UpdateLinuxAmi automatise aussi l'installation de packages et configurations supplémentaires propres aux sites. Vous pouvez mettre à jour différentes distributions Linux à l’aide de cette démonstration, notamment lUbuntu Server, Red Hat Enterprise Linux (RHEL), ou Amazon Linux AMIs. Pour obtenir la liste complète des versions Linux prises en charge, consultez Gestionnaire de correctifs conditions préalables.

Le AWS-UpdateLinuxAmi runbook vous permet d'automatiser les tâches de maintenance des images sans avoir à créer le runbook au format JSON ou YAML. Vous pouvez utiliser le runbook AWS-UpdateLinuxAmi pour effectuer les types de tâche suivants.

  • Mettre à niveau tous les packages de distribution et les logiciels Amazon sur une Amazon Linux, RHEL, ou Ubuntu Server Amazon Machine Image (AMI). Il s'agit du comportement du runbook par défaut.

  • Effectuez l'installation AWS Systems Manager SSM Agent sur une image existante pour activer les fonctionnalités de Systems Manager, telles que l'exécution de commandes à distance AWS Systems Manager Run Command ou la collecte de l'inventaire des logiciels à l'aide d'Inventory.

  • Installer des packages logiciels supplémentaires

Avant de commencer

Avant de commencer à utiliser les runbooks, configurez les rôles et, éventuellement, EventBridge pour Automation. Pour de plus amples informations, veuillez consulter Configuration d'Automation. Cette procédure pas à pas nécessite également que vous indiquiez le nom d'un profil d'instance Gestion des identités et des accès AWS (IAM). Pour de plus amples informations sur la création d’un profil d’instance IAM, consultez Configurer des autorisations d’instance requises pour Systems Manager.

Le runbook AWS-UpdateLinuxAmi 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 identifiant d'un Amazon EC2 AMI pour Linux à l'aide d'un paramètre AWS Systems Manager Parameter Store public. Pour plus d’informations, reportez-vous à Requête pour les derniers ID AMI d’Amazon Linux utilisant AWS Systems Manager Parameter Store.

IamInstanceProfileName

Chaîne

(Obligatoire) Le nom du rôle de profil d’instance IAM que vous avez créé dans Configurer des 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.

AutomationAssumeRole

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é.

TargetAmiName

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.micro.

PreUpdateScript

Chaîne

(Facultatif) URL d'un script à exécuter avant l'application des mises à jour. La valeur par défaut (\"none\") consiste à ne pas exécuter de script.

PostUpdateScript

Chaîne

(Facultatif) URL d'un script à exécuter après l'application des mises à jour de package. La valeur par défaut (\"none\") consiste à ne pas exécuter de script.

IncludePackages

Chaîne

(Facultatif) Mettre à jour uniquement ces packages nommés. Par défaut (\"all\"), toutes les mises à jour disponibles sont appliquées.

ExcludePackages

Chaîne

(Facultatif) Noms des packages spécifiques à exclure des mises à jour, sous toutes les conditions. Par défaut (\"none\"), aucun package n'est exclu.

Étapes d'Automation

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

Étape 1 : launchInstance (action aws:runInstances)

Cette étape lance une instance à l'aide de données utilisateur Amazon Elastic Compute Cloud (Amazon EC2) et d'un rôle de profil d'instance IAM. User data installe le SSM Agent approprié selon le système d'exploitation. L'installation vous SSM Agent permet d'utiliser les outils de Systems Manager tels que Run CommandState Manager, et Inventory.

Étape 2 : updateOSSoftware (action aws:runCommand)

Cette étape exécute les commandes suivantes sur l'instance lancée :

  • Télécharge un script de mise à jour à partir d'Amazon Simple Storage Service (Amazon S3).

  • Exécution d'un script de pré-mise à jour facultatif.

  • Mise à jour des packages de distribution et des logiciels Amazon.

  • Exécution d'un script de post-mise à jour facultatif.

Le journal d'exécution est stocké dans le dossier /tmp pour que l'utilisateur puisse le consulter ultérieurement.

Si vous souhaitez mettre à niveau un ensemble de packages spécifique, vous pouvez fournir la liste à l'aide du paramètre IncludePackages. Dans ce cas, le système tente de mettre à jour seulement ces packages et leurs dépendances. Aucune autre mise à jour n'est exécutée. Par défaut, quand aucun package include n'est spécifié, le programme met à jour tous les packages disponibles.

Si vous souhaitez exclure de la mise à niveau un ensemble de packages spécifique, vous pouvez fournir la liste à l'aide du paramètre ExcludePackages. Dans ce cas, ces packages restent à leur version actuelle, quelles que soient les autres options spécifiées. Par défaut, quand aucun package exclude n'est spécifié, aucun package n'est exclu.

Étape 3 : stopInstance (action aws:changeInstanceState)

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

Étape 4 : 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 {{}SourceAmiId} » où DATE_TIME et SourceID représentent des variables d'automatisation.

Étape 5 : terminateInstance (action aws:changeInstanceState)

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

Output

L'automatisation renvoie le nouvel ID AMI en tant que sortie.

Note

Par défaut, lorsque Automation exécute le AWS-UpdateLinuxAmi runbook, le système crée une instance temporaire dans le VPC par défaut (172.30.0). 0/16). Si vous avez supprimé le VPC par défaut, le message d'erreur suivant s'affiche :

VPC not defined 400

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

Pour créer un correctif AMI en utilisant l'automatisation
  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-UpdateLinuxAmi. Remplacez chaque example resource placeholder par vos propres informations.

    aws ssm start-automation-execution \ --document-name "AWS-UpdateLinuxAmi" \ --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. Utilisez cet ID pour consulter l'état 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. automation execution IDRemplacez-les par vos propres informations.

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

    Le processus de mise à jour peut prendre 30 minutes ou plus.

    Note

    Vous pouvez aussi surveiller le statut de l'automatisation dans la console. Dans la liste, sélectionnez l'automatisation que vous venez juste d'exécuter, puis sélectionnez l'onglet Steps (Étapes). Cet onglet affiche l'état des actions de l'automatisation.

Lorsque l'automatisation est terminée, lancez une instance test à partir de l'AMI mise à jour pour vérifier les modifications.

Note

Si une étape de l'automatisation échoue, les informations concernant l'échec sont répertoriées dans la page Automation Executions. L'automatisation est conçue pour mettre fin à l'instance temporaire une fois que toutes les tâches ont été effectuées correctement. Si une étape échoue, le système ne met pas nécessairement fin à l'instance. Donc, si une étape échoue, mettez fin à l'instance temporaire manuellement.