Résoudre les problèmes liés à l'agent EC2Launch v2 - 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.

Résoudre les problèmes liés à l'agent EC2Launch v2

Cette section présente les scénarios de résolution des problèmes courants pour la EC2Launch version 2, des informations sur l'affichage des journaux d'événements Windows, ainsi que les résultats et les messages des journaux de console.

Scénarios courants de résolution des problèmes

Cette section présente les scénarios de dépannage courants et les étapes de résolution.

Le service ne parvient pas à définir le fond d’écran

Résolution
  1. Vérifiez si %AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\setwallpaper.lnk existe.

  2. Vérifiez dans %ProgramData%\Amazon\EC2Launch\log\agent.log pour voir si des erreurs se sont produites.

Le service ne parvient pas à exécuter les données utilisateur

Cause possible : le service peut avoir échoué avant l’exécution des données utilisateur.

Résolution
  1. Vérifiez %ProgramData%\Amazon\EC2Launch\state\previous-state.json.

  2. Voyez si boot, network, preReady et postReadyLocalData ont tous été marqués comme une réussite.

  3. Si l’une des étapes a échoué, vérifiez si %ProgramData%\Amazon\EC2Launch\log\agent.log contient des erreurs spécifiques.

Le service exécute une tâche une seule fois

Résolution
  1. Vérifiez la fréquence de la tâche.

  2. Si le service a déjà été exécuté après Sysprep et que la fréquence de la tâche est définie sur once, la tâche ne s’exécutera plus.

  3. Définissez la fréquence de la tâche sur always si vous souhaitez qu'elle l'exécute à chaque exécution de la EC2Launch v2.

Le service ne parvient pas à exécuter une tâche

Résolution
  1. Vérifiez les dernières entrées dans %ProgramData%\Amazon\EC2Launch\log\agent.log.

  2. Si aucune erreur n’est survenue, essayez d’exécuter le service manuellement à partir de "%ProgramFiles%\Amazon\EC2Launch\EC2Launch.exe" run pour voir si les tâches réussissent.

Le service exécute les données utilisateur plus d’une fois

Résolution

Les données utilisateur sont traitées différemment entre la EC2Launch v1 et la EC2Launch v2. EC2Launchv1 exécute les données utilisateur sous forme de tâche planifiée sur l'instance lorsqu'elle persist est définie surtrue. Si persist est défini sur false, la tâche n’est pas planifiée même lorsqu’elle se termine avec un redémarrage ou est interrompue pendant son exécution.

EC2LaunchLa v2 exécute les données utilisateur en tant que tâche d'agent et suit leur état d'exécution. Si les données utilisateur entraînent un redémarrage de l’ordinateur ou si leur exécution est interrompue, l’état d’exécution pending persiste et les données utilisateur seront réexécutées au démarrage suivant de l’instance. Si vous souhaitez empêcher le script de données utilisateur de s’exécuter plusieurs fois, rendez le script idempotent.

L’exemple suivant de script idempotent définit le nom de l’ordinateur et joint un domaine.

<powershell> $name = $env:computername if ($name -ne $desiredName) { Rename-Computer -NewName $desiredName } $domain = Get-ADDomain if ($domain -ne $desiredDomain) { Add-Computer -DomainName $desiredDomain } $telnet = Get-WindowsFeature -Name Telnet-Client if (-not $telnet.Installed) { Install-WindowsFeature -Name "Telnet-Client" } </powershell> <persist>false</persist>

Les tâches planifiées de la EC2Launch version 1 ne s'exécutent pas après la migration vers la EC2Launch version 2

Résolution

L'outil de migration ne détecte aucune tâche planifiée liée aux scripts EC2Launch v1 ; par conséquent, il ne configure pas automatiquement ces tâches dans la EC2Launch version v2. Pour configurer ces tâches, modifiez le agent-config.ymlfichier ou utilisez la boîte de dialogue des EC2Launch paramètres de la version 2. Par exemple, si une tâche planifiée est exécutée sur une instanceInitializeDisks.ps1, après avoir exécuté l'outil de migration, vous devez spécifier les volumes que vous souhaitez initialiser dans la boîte de dialogue des paramètres de EC2Launch la version 2. Voir l’étape 6 de la procédure pour Modifier les paramètres à l'aide de la boîte de EC2Launch dialogue des paramètres de la version 2.

Le service initialise un EBS volume qui n'est pas vide

Résolution

Avant d'initialiser un volume, la EC2Launch v2 tente de détecter s'il est vide. Si un volume n’est pas vide, il ignore l’initialisation. Les volumes détectés comme non vides ne sont pas initialisés. Un volume est considéré comme vide si les 4 premiers Ko d’un volume sont vides ou si un volume n’a pas de disposition de lecteur reconnaissable par Windows. Un volume initialisé et formaté sur un système Linux ne possède pas de disposition de lecteur reconnaissable par Windows, par exemple ou. MBR GPT Par conséquent, il sera considéré comme vide et initialisé. Si vous souhaitez conserver ces données, ne vous fiez pas à la détection des disques vides dans la EC2Launch version v2. Spécifiez plutôt les volumes que vous souhaitez initialiser dans la boîte de dialogue des EC2Launch paramètres de la version 2 (voir étape 6) ou dans le agent-config.yml.

La tâche setWallpaper n’est pas activée, mais le fond d’écran se réinitialise au redémarrage

La tâche setWallpaper crée le fichier de raccourci setwallpaper.lnk dans le dossier de démarrage de chaque utilisateur existant, sauf pour Default User. Ce fichier de raccourci s’exécute lorsque l’utilisateur se connecte pour la première fois après le démarrage de l’instance. Il configure l’instance avec un fond d’écran personnalisé qui affiche les attributs de l’instance. La suppression de la tâche setWallpaper ne supprime pas ce fichier de raccourci. Vous devez supprimer manuellement ce fichier ou le supprimer à l’aide d’un script.

Le chemin du raccourci est le suivant :

$env:SystemDrive/Users/<user>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/setwallpaper.lnk

Résolution

Supprimez manuellement ce fichier ou supprimez-le à l’aide d’un script.

Exemple de PowerShell script pour supprimer un fichier de raccourci

foreach ($userDir in (Get-ChildItem "C:\Users" -Force -Directory).FullName) { $startupPath = Join-Path $userDir -ChildPath "AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" if (Test-Path $startupPath) { $wallpaperSetupPath = Join-Path $startupPath -ChildPath "setwallpaper.lnk" if (Test-Path $wallpaperSetupPath) { Remove-Item $wallpaperSetupPath -Force -Confirm:$false } } }

Service bloqué en mode d’exécution

Description

EC2LaunchLa v2 est bloquée, avec des messages de journal (agent.log) similaires aux suivants :

2022-02-24 08:08:58 Info: ***************************************************************************************** 2022-02-24 08:08:58 Info: EC2Launch Service starting 2022-02-24 08:08:58 Info: Windows event custom log exists: Amazon EC2Launch 2022-02-24 08:08:58 Info: ACPI SPCR table not supported. Bailing Out 2022-02-24 08:08:58 Info: Serial port is in use. Waiting for Serial Port... 2022-02-24 08:09:00 Info: ACPI SPCR table not supported. Use default console port. 2022-02-24 08:09:02 Info: ACPI SPCR table not supported. Use default console port. 2022-02-24 08:09:04 Info: ACPI SPCR table not supported. Use default console port. 2022-02-24 08:09:06 Info: ACPI SPCR table not supported. Use default console port.
Cause possible

SACest activé et utilise le port série. Pour plus d'informations, consultez la section Utiliser SAC pour dépanner votre instance Windows.

Résolution

Essayez les étapes suivantes pour résoudre ce problème :

  • Désactivez le service qui utilise le port série.

  • Si vous voulez que le service continue à utiliser le port série, écrivez des scripts personnalisés pour exécuter les tâches de l’agent de lancement et invoquez-les en tant que tâches planifiées.

Non valide agent-config.yml empêche l'ouverture de la boîte de dialogue des paramètres de la EC2Launch v2

Description

EC2Launchv2 settings tente d'analyser le agent-config.yml fichier avant qu'il n'ouvre la boîte de dialogue. Si le fichier YAML de configuration ne suit pas le schéma pris en charge, la boîte de dialogue affiche le message d'erreur suivant :

Unable to parse configuration file agent-config.yml. Review configuration file. Exiting application.

Résolution
  1. Vérifiez que le fichier de configuration est conforme au schéma pris en charge.

  2. Si vous souhaitez commencer à zéro, copiez le fichier de configuration par défaut dans agent-config.yml. Vous pouvez utiliser l’exemple agent-config.yml fourni dans la section Configuration des tâches.

  3. Vous pouvez également recommencer en supprimant agent-config.yml. EC2Launchv2 settings génère un fichier de configuration vide.

task:executeScript should be unique and only invoked once

Description

Une tâche ne peut pas être répétée dans la même étape.

Résolution

Certaines tâches doivent être saisies sous forme de tableau, telles que executeScriptet executeProgram. Pour un exemple de la façon d'écrire le script sous forme de tableau, consultez executeScript.

Journaux d’événements Windows

EC2LaunchLa v2 publie des journaux d'événements Windows pour les événements importants, tels que le démarrage du service, le fait que Windows est prêt, ainsi que la réussite ou l'échec des tâches. Les identificateurs d’événement identifient de manière unique un événement particulier. Chaque événement contient des informations sur l’étape, la tâche et le niveau, ainsi qu’une description. Vous pouvez définir des déclencheurs pour des événements spécifiques à l’aide de l’identificateur d’événement.

Événement : IDs fournissez des informations sur un événement et identifiez certains événements de manière unique. Le chiffre le moins significatif d’un ID d’événement indique la gravité d’un événement.

Événement Chiffre le moins significatif
Success . . .0
Informational . . .1
Warning . . .2
Error . . .3

Les événements liés au service qui sont générés au démarrage ou à l’arrêt du service incluent un identifiant d’événement à un seul chiffre.

Événement Identifiant à un chiffre
Success 0
Informational 1
Warning 2
Error 3

Les messages d’événement pour les événements EC2LaunchService.exe commencent par Service:. Les messages d’événement pour les événements EC2Launch.exe ne commencent pas par Service:.

Un événement à quatre chiffres IDs inclut des informations sur le stade, la tâche et la gravité d'un événement.

Format de l’ID d’événement

Le tableau suivant indique le format d'un identifiant d'événement EC2Launch v2.

3 2 1 0

S

T

L

Les lettres et les chiffres du tableau représentent le type d’événement et les définitions suivants.

Type d’événement Définition

S (Stage)

0 - Message de niveau de service

1 - Démarrer

2 - Réseau

3 - PreReady

5 - Windows est prêt

6 - PostReady

7 - Données utilisateur

T (Tâche)

Les tâches représentées par les deux valeurs correspondantes sont différentes pour chaque étape. Pour afficher la liste complète des événements, consultez Schéma du journal des événements Windows.

L (Niveau de l’événement)

0 - Réussite

1 - Informationnel

2 - Avertissement

3 - Erreur

Exemples d’ID d’événement

Voici un exemple d'événementIDs.

  • 5000 - Windows est prêt à l’emploi

  • 3010- La tâche d'activation de Windows en cours d' PreReady étape a été réussie

  • 6013- La tâche de définition du fond d'écran dans le stage PostReady Local Data a rencontré une erreur

Schéma du journal des événements Windows

MessageId/Identifiant de l'événement Message d’événement
. . .0 Success
. . .1 Informational
. . .2 Warning
. . .3 Error
x EC2Launch service-level logs
0 EC2Launch service exited successfully
1 EC2Launch service informational logs
2 EC2Launch service warning logs
3 EC2Launch service error logs
10 Replace state.json with previous-state.json
100 Serial Port
200 Sysprep
300 PrimaryNic
400 Metadata
x000 Stage (1 digit), Task (2 digits), Status (1 digit)
1000 Boot
1010 Boot - extend_root_partition
2000 Network
2010 Network - add_routes
3000 PreReady
3010 PreReady - activate_windows
3020 PreReady - install_egpu_manager
3030 PreReady - set_monitor_on
3040 PreReady - set_hibernation
3050 PreReady - set_admin_account
3060 PreReady - set_dns_suffix
3070 PreReady - set_wallpaper
3080 PreReady - set_update_schedule
3090 PreReady - output_log
3100 PreReady - enable_open_ssh
5000 Windows is Ready to use
6000 PostReadyLocalData
7000 PostReadyUserData
6010/7010 PostReadyLocal/UserData - set_wallpaper
6020/7020 PostReadyLocal/UserData - set_update_schedule
6030/7030 PostReadyLocal/UserData - set_hostname
6040/7040 PostReadyLocal/UserData - execute_program
6050/7050 PostReadyLocal/UserData - execute_script
6060/7060 PostReadyLocal/UserData - manage_package
6070/7070 PostReadyLocal/UserData - initialize_volume
6080/7080 PostReadyLocal/UserData - write_file
6090/7090 PostReadyLocal/UserData - start_ssm
7100 PostReadyUserData - enable_open_ssh
6110/7110 PostReadyLocal/UserData - enable_jumbo_frames

EC2Launchsortie du journal de la console v2

Cette section contient des exemples de sortie du journal de console pour la EC2Launch version v2 et répertorie tous les messages d'erreur du journal de console EC2Launch v2 pour vous aider à résoudre les problèmes. Pour plus d'informations sur la sortie de la console d'instance et sur la manière d'y accéder, consultezSortie de la console de l’instance.

EC2Launchsortie du journal de la console v2

Voici un exemple de sortie du journal de console pour la EC2Launch version 2.

2023/11/30 20:18:53Z: Windows sysprep configuration complete. 2023/11/30 20:18:57Z: Message: Waiting for access to metadata... 2023/11/30 20:18:57Z: Message: Meta-data is now available. 2023/11/30 20:18:57Z: AMI Origin Version: 2023.11.15 2023/11/30 20:18:57Z: AMI Origin Name: Windows_Server-2022-English-Full-Base 2023/11/30 20:18:58Z: OS: Microsoft Windows NT 10.0.20348 2023/11/30 20:18:58Z: OsVersion: 10.0 2023/11/30 20:18:58Z: OsProductName: Windows Server 2022 Datacenter 2023/11/30 20:18:58Z: OsBuildLabEx: 20348.1.amd64fre.fe_release.210507-1500 2023/11/30 20:18:58Z: OsCurrentBuild: 20348 2023/11/30 20:18:58Z: OsReleaseId: 2009 2023/11/30 20:18:58Z: Language: en-US 2023/11/30 20:18:58Z: TimeZone: UTC 2023/11/30 20:18:58Z: Offset: UTC +0000 2023/11/30 20:18:58Z: Launch: EC2 Launch v2.0.1643 2023/11/30 20:18:58Z: AMI-ID: ami-1234567890abcdef1 2023/11/30 20:18:58Z: Instance-ID: i-1234567890abcdef0 2023/11/30 20:18:58Z: Instance Type: c5.large 2023/11/30 20:19:00Z: Driver: AWS NVMe Driver v1.5.0.33 2023/11/30 20:19:00Z: SubComponent: AWS NVMe Driver v1.5.0.33; EnableSCSIPersistentReservations: 0 2023/11/30 20:19:00Z: Driver: AWS PV Driver Package v8.4.3 2023/11/30 20:19:01Z: Driver: Amazon Elastic Network Adapter v2.6.0.0 2023/11/30 20:19:01Z: RDPCERTIFICATE-SUBJECTNAME: EC2AMAZ-SO1T009 2023/11/30 20:19:01Z: RDPCERTIFICATE-THUMBPRINT: 1234567890ABCDEF1234567890ABCDEF1234567890 2023/11/30 20:19:09Z: SSM: Amazon SSM Agent v3.2.1705.0 2023/11/30 20:19:13Z: Username: Administrator 2023/11/30 20:19:13Z: Password: <Password> 1234567890abcdef1EXAMPLEPASSWORD </Password> 2023/11/30 20:19:14Z: User data format: no_user_data 2023/11/30 20:19:14Z: EC2LaunchTelemetry: IsTelemetryEnabled=true 2023/11/30 20:19:14Z: EC2LaunchTelemetry: AgentOsArch=windows_amd64 2023/11/30 20:19:14Z: EC2LaunchTelemetry: IsAgentScheduledPerBoot=true 2023/11/30 20:19:14Z: EC2LaunchTelemetry: AgentCommandErrorCode=0 2023/11/30 20:19:14Z: Message: Windows is Ready to use

EC2Launchmessages de journal de la console v2

Vous trouverez ci-dessous une liste de tous les messages du journal de la console EC2Launch v2.

Message: Error EC2Launch service is stopping. {error message} Error setting up EC2Launch agent folders See instance logs for detail Error stopping service Error initializing service Message: Windows sysprep configuration complete Message: Invalid administrator username: {invalid username} Message: Invalid administrator password Username: {username} Password: <Password>{encrypted password}</Password> AMI Origin Version: {amiVersion} AMI Origin Name: {amiName} Microsoft Windows NT {currentVersion}.{currentBuildNumber} OsVersion: {currentVersion} OsProductName: {productName} OsBuildLabEx: {buildLabEx} OsCurrentBuild: {currentBuild} OsReleaseId: {releaseId} Language: {language} TimeZone: {timeZone} Offset: UTC {offset} Launch agent: EC2Launch {BuildVersion} AMI-ID: {amiId} Instance-ID: {instanceId} Instance Type: {instanceType} RDPCERTIFICATE-SUBJECTNAME: {certificate subject name} RDPCERTIFICATE-THUMBPRINT: {thumbprint hash} SqlServerBilling: {sql billing} SqlServerInstall: {sql patch leve, edition type} Driver: AWS NVMe Driver {version} Driver: Inbox NVMe Driver {version} Driver: AWS PV Driver Package {version} Microsoft-Hyper-V is installed. Unable to get service status for vmms Microsoft-Hyper-V is {status} SSM: Amazon SSM Agent {version} AWS VSS Version: {version} Message: Windows sysprep configuration complete Message: Windows is being configured. SysprepState is {state} Windows is still being configured. SysprepState is {state} Message: Windows is Ready to use Message: Waiting for meta-data accessibility... Message: Meta-data is now available. Message: Still waiting for meta-data accessibility... Message: Failed to find primary network interface...retrying... User data format: {format}