Utiliser l'agent EC2Launch v2 pour effectuer des tâches lors du lancement de l'instance EC2 Windows - Amazon Elastic Compute Cloud

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.

Utiliser l'agent EC2Launch v2 pour effectuer des tâches lors du lancement de l'instance EC2 Windows

Toutes les instances d'Amazon prises en charge EC2 qui sont lancées à partir de AWS Windows Server 2022 AMIs incluent l'agent de lancement EC2Launch v2 (EC2Launch.exe) par défaut. Nous fournissons également Windows Server 2016 et 2019 AMIs avec la EC2Launch version v2 installée comme agent de lancement par défaut. Ils AMIs sont fournis en plus des versions Windows Server 2016 et 2019 AMIs qui incluent la version EC2Launch 1. Vous pouvez rechercher des Windows AMIs qui incluent la EC2Launch v2 par défaut en saisissant le préfixe suivant dans votre recherche AMIssur la page de la EC2 console Amazon :EC2LaunchV2-Windows_Server-*.

Pour comparer les fonctionnalités des versions de l'agent de lancement, voirComparez les agents EC2 de lancement Amazon.

EC2LaunchLa v2 exécute des tâches lors du démarrage de l'instance et s'exécute si une instance est arrêtée puis redémarrée ultérieurement, ou redémarrée. EC2LaunchLa v2 peut également effectuer des tâches à la demande. Certaines de ces tâches sont automatiquement activées, alors que d’autres doivent être activées manuellement. Le service EC2Launch v2 prend en charge toutes EC2Config les EC2Launch fonctionnalités.

Ce service utilise un fichier de configuration pour contrôler son fonctionnement. Vous pouvez mettre à jour le fichier de configuration à l’aide d’un outil graphique ou en le modifiant directement en tant que fichier .yml unique (agent-config.yml). Les binaires de service se trouvent dans le répertoire %ProgramFiles%\Amazon\EC2Launch.

EC2LaunchLa v2 publie des journaux d'événements Windows pour vous aider à résoudre les erreurs et à définir des déclencheurs. Pour de plus amples informations, veuillez consulter Journaux d’événements Windows.

L'agent EC2Launch v2 prend en charge les versions suivantes du système d'exploitation Windows Server :

Versions d'OS prises en charge
  • Windows Server 2022

  • Windows Server 2019 (canal de maintenance à long terme et canal semestriel)

  • Windows Server 2016

EC2Launchconcepts de la version 2

Les concepts suivants sont utiles à comprendre lorsque l'on envisage la EC2Launch version 2.

Tâche

Vous pouvez invoquer une tâche pour effectuer une action sur une instance. Vous pouvez configurer les tâches dans le fichier agent-config.yml ou via les données utilisateur. Pour une liste des tâches disponibles pour la EC2Launch version 2, consultez la section tâches de la EC2Launch version 2. Pour le schéma de configuration des tâches et les détails, consultez EC2Launchconfiguration des tâches v2.

Étape

Une étape est un regroupement logique de tâches exécutées par l'agent EC2Launch v2. Certaines tâches ne peuvent s’exécuter qu’à un stade spécifique. D’autres peuvent fonctionner en plusieurs étapes. Lors de l’utilisation de agent-config.yml, vous devez spécifier une liste d’étapes et une liste de tâches à exécuter au sein de chaque étape.

Le service exécute les étapes dans l’ordre suivant :

Étape 1 : Démarrage

Étape 2 : Réseau

Étape 3 : PreReady

Windows est prêt

Une fois l' PreReady étape terminée, le service envoie le Windows is ready message à la EC2 console Amazon.

Étape 4 : PostReady

Les données utilisateur sont exécutées pendant la PostReadyphase. Certaines versions de script s'exécutent avant le PostReadystade du agent-config.yml fichier, tandis que d'autres s'exécutent après, comme suit :

Avant agent-config.yml
  • YAMLversion 1.1 des données utilisateur

  • XMLdonnées utilisateur

Après agent-config.yml
  • YAMLdonnées utilisateur version 1.0 (ancienne version pour la rétrocompatibilité)

Pour des exemples d’étapes et de tâches, consultez Exemple : agent-config.yml.

Lorsque vous utilisez des données utilisateur, vous devez spécifier une liste de tâches que l’agent de lancement doit exécuter. L’étape est implicite. Pour des exemples de tâches, consultez Exemple : données utilisateur.

EC2LaunchLa v2 exécute la liste des tâches dans l'ordre que vous spécifiez dans agent-config.yml et dans les données utilisateur. Les étapes s’exécutent de manière séquentielle. L’étape suivante commence lorsque l’étape précédente est terminée. Les tâches sont également exécutées de manière séquentielle.

Fréquence

La fréquence des tâches détermine le moment où les tâches doivent être exécutées, en fonction du contexte de démarrage. La plupart des tâches n’ont qu’une seule fréquence autorisée. Vous pouvez spécifier une fréquence pour les tâches executeScript.

Vous verrez les fréquences suivantes dans la EC2Launchconfiguration des tâches v2.

  • Une fois — La tâche s'exécute une fois, lors du AMI premier démarrage (fin de Sysprep).

  • Toujours : la tâche s’exécute chaque fois que l’agent de lancement s’exécute. L’agent de lancement s’exécute lorsque :

    • une instance démarre ou redémarre

    • le EC2Launch service fonctionne

    • EC2Launch.exe run est invoqué

agent-config

agent-configest un fichier qui se trouve dans le dossier de configuration de la EC2Launch v2. Il inclut la configuration du démarrage PreReady, du réseau et des PostReady stages. Ce fichier est utilisé pour spécifier la configuration de l'instance pour les AMI tâches qui doivent être exécutées lors du premier démarrage ou ultérieurement.

Par défaut, l'installation EC2Launch v2 installe un agent-config fichier qui inclut les configurations recommandées utilisées dans Amazon Windows AMIs standard. Vous pouvez mettre à jour le fichier de configuration afin de modifier l'expérience de démarrage par défaut AMI spécifiée par la EC2Launch v2.

Données utilisateur

Les données utilisateur sont des données configurables lorsque vous lancez une instance. Vous pouvez mettre à jour les données utilisateur pour modifier de manière dynamique le mode de configuration personnalisé AMIs ou de démarrage rapideAMIs. EC2LaunchLa v2 prend en charge une longueur de saisie de données utilisateur de 60 kB. Les données utilisateur incluent uniquement l' UserData étape et s'exécutent donc après le agent-config fichier. Vous pouvez saisir des données utilisateur lorsque vous lancez une instance à l'aide de l'assistant de lancement d'instance, ou vous pouvez modifier les données utilisateur depuis la EC2 console. Pour plus d’informations sur l’utilisation des données d’utlisateur, consultez Comment Amazon EC2 gère les données utilisateur pour les instances Windows.

EC2Launchvue d'ensemble des tâches v2

EC2LaunchLa v2 peut effectuer les tâches suivantes à chaque démarrage :

  • Configurez un nouveau fond d’écran personnalisé qui rend des informations sur l’instance.

  • Définissez les attributs du compte d’administrateur créé sur la machine locale.

  • Ajoutez des DNS suffixes à la liste des suffixes de recherche. Seuls les suffixes qui n’existent pas déjà sont ajoutés à la liste.

  • Définissez les lettres de lecteur pour les volumes supplémentaires et étendez-les pour utiliser l’espace disponible.

  • Écrivez les fichiers de la configuration sur le disque.

  • Exécutez les scripts spécifiés dans le fichier de configuration EC2Launch v2 ou à partir deuser-data. Les scripts de user-data peuvent être en texte brut ou compressés et fournis au format base64.

  • Exécutez un programme avec des arguments donnés.

  • Définir le nom d’ordinateur

  • Envoyez les informations de l'instance à la EC2 console Amazon.

  • Envoyez l'empreinte RDP numérique du certificat à la console AmazonEC2.

  • Etendez de manière dynamique la partition du système d’exploitation pour inclure l’espace non partitionné.

  • Exécutez des données utilisateur. Pour plus d’informations sur la spécification de données utilisateur, consultez EC2Launchconfiguration des tâches v2.

  • Définissez des routes non statiques permanentes pour atteindre le service de métadonnées et les serveurs AWS KMS .

  • Définissez les partitions autres que le démarrage sur mbr ougpt.

  • Démarrez le service Systems Manager après Sysprep.

  • Optimisez ENA les paramètres.

  • Activez Ouvrir SSH pour les versions ultérieures de Windows.

  • Activez les trames Jumbo.

  • Configurez Sysprep pour qu'il s'exécute avec la version v2. EC2Launch

  • Publiez les journaux des événements Windows.

EC2Launchstructure du répertoire v2

EC2LaunchLa v2 doit être installée dans les répertoires suivants :

  • Binaires de service : %ProgramFiles%\Amazon\EC2Launch

  • Données de service (paramètres, fichiers journaux et fichiers d’état) : %ProgramData%\Amazon\EC2Launch

Note

Par défaut, Windows masque les fichiers et les dossiers qui se trouvent sous C:\ProgramData. Pour afficher les EC2Launch répertoires et les fichiers de la version 2, vous devez soit entrer le chemin dans l'Explorateur Windows, soit modifier les propriétés du dossier pour afficher les fichiers et dossiers cachés.

Le répertoire %ProgramFiles%\Amazon\EC2Launch contient des binaires et des bibliothèques de support. Il comprend les sous-répertoires suivants :

  • settings

    • EC2LaunchSettingsUI.exe — Interface utilisateur pour modifier le fichier agent-config.yml

    • YamlDotNet.dll— DLL pour prendre en charge certaines opérations dans l'interface utilisateur

  • tools

    • ebsnvme-id.exe— outil pour examiner les métadonnées des EBS volumes de l'instance

    • AWSAcpiSpcrReader.exe— outil pour déterminer le COM port correct à utiliser

    • EC2LaunchEventMessage.dll— DLL pour prendre en charge la journalisation des événements Windows pourEC2Launch.

  • service

    • EC2LaunchService.exe — Exécutable de service Windows qui est lancé lorsque l’agent de lancement s’exécute en tant que service.

  • EC2Launch.exe— EC2Launch exécutable principal

  • EC2LaunchAgentAttribution.txt— attribution du code utilisé dans EC2 Launch

Le répertoire %ProgramData%\Amazon\EC2Launch contient les sous-répertoires suivants. Toutes les données produites par le service, y compris les journaux, la configuration et l’état, sont stockées dans ce répertoire.

  • config— Configuration

    Le fichier de configuration du service est stocké dans ce répertoire sous la forme de agent-config.yml. Ce fichier peut être mis à jour pour modifier, ajouter ou supprimer des tâches exécutées par le service par défaut. L’autorisation de créer des fichiers dans ce répertoire est limitée au compte administrateur pour empêcher l’escalade des privilèges.

  • log— Journaux d'instance

    Les journaux relatifs au service (agent.log), à la console (console.log), aux performances (bench.log), aux erreurs (err.log) et à la télémétrie () telemetry.log sont stockés dans ce répertoire. Les fichiers journaux sont ajoutés lors des exécutions ultérieures du service.

  • state— Données sur l'état du service

    L’état utilisé par le service pour déterminer les tâches à exécuter est stocké ici. Il existe un fichier .run-once qui indique si le service a déjà été exécuté après Sysprep (donc les tâches avec une fréquence d’une fois seront ignorées lors de la prochaine exécution). Ce sous-répertoire inclut un state.json et previous-state.json pour suivre l’état de chaque tâche.

  • sysprep— Sysprep

    Ce répertoire contient les fichiers utilisés pour déterminer les opérations à effectuer par Sysprep lorsqu'il crée un Windows personnalisé AMI qui peut être réutilisé.

  • wallpaper— Papier peint

    Ces images de fond d'écran sont stockées dans ce répertoire.

Télémétrie

La télémétrie est une information supplémentaire qui permet de mieux AWS comprendre vos besoins, de diagnostiquer les problèmes et de fournir des fonctionnalités pour améliorer votre expérience avec. services AWS

EC2LaunchLes versions v2 2.0.592 et ultérieures collectent des données télémétriques, telles que les métriques d'utilisation et les erreurs. Ces données sont collectées à partir de l'EC2instance Amazon sur laquelle s'exécute la EC2Launch v2. Cela inclut tous les appareils Windows AMIs détenus par AWS.

Les types de télémétrie suivants sont collectés par EC2Launch la v2 :

  • Usage information (Informations d’utilisation) : commandes de l’agent, méthode d’installation et fréquence d’exécution planifiée.

  • Erreurs et informations de diagnostic : codes d'erreur d'installation de l'agent, codes d'erreur d'exécution et piles d'appels d'erreur.

Exemples de données collectées :

2021/07/15 21:44:12Z: EC2LaunchTelemetry: IsAgentScheduledPerBoot=true 2021/07/15 21:44:12Z: EC2LaunchTelemetry: IsUserDataScheduledPerBoot=true 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentCommandCode=1 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentCommandErrorCode=5 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentInstallCode=2 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentInstallErrorCode=0

La télémétrie est activée par défaut. Vous pouvez désactiver la collecte de données de télémétrie à tout moment. Si la télémétrie est activée, la EC2Launch version 2 envoie des données de télémétrie sans notification supplémentaire au client.

Visibilité de la télémétrie

Lorsque la télémétrie est activée, elle apparaît dans la sortie de EC2 la console Amazon comme suit.

2021/07/15 21:44:12Z: Telemetry: <Data>
Désactiver la télémétrie sur une instance

Pour désactiver la télémétrie pour une seule instance, vous pouvez définir une variable d'environnement système ou utiliser le MSI pour modifier l'installation.

Pour désactiver la télémétrie en paramétrant une variable d’environnement système, exécutez la commande suivante en tant qu’administrateur.

setx /M EC2LAUNCH_TELEMETRY 0

Pour désactiver la télémétrie à l'aide duMSI, exécutez la commande suivante après avoir téléchargé le. MSI

msiexec /i ".\AmazonEC2Launch.msi" Remove="Telemetry" /q