Mettre à jour une AMI Linux - 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 Linux

Cette procédure Systems Manager Automation vous montre comment utiliser la console ou l' AWS CLI et le runbook AWS-UpdateLinuxAmi pour mettre à jour une AMI Linux avec les correctifs les plus récents des packages que vous spécifiez. Automation est une fonctionnalité de AWS Systems Manager. Le runbook AWS-UpdateLinuxAmi automatise aussi l'installation de packages et configurations supplémentaires propres aux sites. Vous pouvez mettre à jour diverses distributions Linux à l'aide de cette procédure pas à pasUbuntu Server, notamment CentOS, RHEL, SLES ou Amazon Linux. AMIs Pour obtenir la liste complète des versions Linux prises en charge, consultez Conditions préalables requises Patch Manager.

Le runbook AWS-UpdateLinuxAmi vous permet d'automatiser les tâches de maintenance d'images sans devoir créer de runbook en 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, Red Hat Enterprise Linux, Ubuntu Server, SUSE Linux Enterprise Server ou CentOS 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 d'un inventaire logiciel à l'aide d'Inventory.

  • Installer des packages logiciels supplémentaires

Avant de commencer

Avant de commencer à travailler avec des 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 spécifiiez le nom d'un profil d'instance AWS Identity and Access Management (IAM). Pour de plus amples informations sur la création d'un profil d'instance IAM, consultez Configurer des autorisations d'instance 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.

IamInstanceProfileName

Chaîne

(Obligatoire) Le nom du rôle de profil d'instance IAM que vous avez créé dans Configurer des autorisations d'instance 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. Si vous spécifiez l'Amazon Resource Name (ARN), l'automatisation échoue.

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 actions d'automatisation 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. Userdata installe l'SSM Agent approprié selon le système d'exploitation. L'installation de SSM Agent vous permet d'utiliser des fonctionnalités de Systems Manager comme Run Command, State Manager et Inventory.

Étape 2 : updateOSSoftware (action aws:runCommand)

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

  • Téléchargement d'un script de mise à jour depuis 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é par EC2 Automation le {{global:Date_Time}} à partir de {{SourceAmiId}} » où DATE_TIME et sourceID représentent les 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.

Sortie

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

Note

Par défaut, lorsqu'Automation exécute le runbook AWS-UpdateLinuxAmi, 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, vous recevrez l'erreur suivante :

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 une AMI à laquelle un correctif a été appliqué l'aide d'Automation (AWS Systems Manager)
  1. Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/.

  2. Dans le panneau de navigation de gauche, sélectionnez Automation (Automatisation).

    -ou-

    Si la page d' AWS Systems Manager accueil s'ouvre en premier, choisissez l'icône du menu ( The menu icon ) pour ouvrir le volet de navigation, puis choisissez Automation.

  3. Sélectionnez Execute automation (Exécuter l'automatisation).

  4. Dans la liste Document Type (Type de document), sélectionnez AWS-UpdateLinuxAmi.

  5. Dans la section Document details (Détails du document), vérifiez que l'option Document version (Version du document) est définie sur Version par défaut lors de l'exécution.

  6. Sélectionnez Suivant.

  7. Dans la section Execution mode (Mode d'exécution), sélectionnez Simple Execution (Exécution simple).

  8. Dans la section Input parameters (Paramètres d'entrée), saisissez les informations que vous avez collectées dans la section Before you begin (Avant de commencer).

  9. Sélectionnez Execute (Exécuter). La console affiche le statut de l'exécution d'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.