Résolution des problèmes liés à l'agent EC2Launch v2
Cette section présente les scénarios de dépannage courants pour EC2Launch v2, les informations sur l’affichage des journaux d’évènements Windows, ainsi que la sortie et les messages du journal de la console.
Résolution des problèmes liés aux rubriques
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.
Scénarios
- Le service ne parvient pas à définir le fond d’écran
- Le service ne parvient pas à exécuter les données utilisateur
- Le service exécute une tâche une seule fois
- Le service ne parvient pas à exécuter une tâche
- Le service exécute les données utilisateur plus d’une fois
- Les tâches planifiées à partir d’EC2Launch v1 échouent après la migration vers EC2Launch v2
- Le service initialise un volume EBS qui n’est pas vide
- La tâche setWallpaper n’est pas activée, mais le fond d’écran se réinitialise au redémarrage
- Service bloqué en mode d’exécution
- agent-config.yml non valide empêche l’ouverture de la boîte de dialogue des paramètres EC2Launch v2
- task:executeScript should be unique and only invoked once
Le service ne parvient pas à définir le fond d’écran
Résolution
-
Vérifiez si
%AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\setwallpaper.lnk
existe. -
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
-
Vérifiez
%ProgramData%\Amazon\EC2Launch\state\previous-state.json
. -
Voyez si
boot
,network
,preReady
etpostReadyLocalData
ont tous été marqués comme une réussite. -
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
-
Vérifiez la fréquence de la tâche.
-
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. -
Définissez la fréquence de la tâche sur
always
si vous souhaitez qu’elle soit exécutée chaque fois que EC2Launch v2 est exécuté.
Le service ne parvient pas à exécuter une tâche
Résolution
-
Vérifiez les dernières entrées dans
%ProgramData%\Amazon\EC2Launch\log\agent.log
. -
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 EC2Launch v1 et EC2Launch v2. EC2Launch v1 exécute les données utilisateur en tant que tâche planifiée sur l’instance lorsque persist
est défini sur true
. 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.
EC2Launch v2 exécute les données utilisateur en tant que tâche d’agent et suit son é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 à partir d’EC2Launch v1 échouent après la migration vers EC2Launch v2
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 définit pas automatiquement ces tâches dans EC2Launch v2. Pour configurer ces tâches, modifiez le fichier agent-config.yml ou utilisez la boîte de dialogue des paramètres d’EC2Launch v2. Par exemple, si une tâche planifiée sur une instance exécute InitializeDisks.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 d’EC2Launch v2. Voir l’étape 6 de la procédure pour Modifier les paramètres à l’aide de la boîte de dialogue des paramètres EC2Launch v2.
Le service initialise un volume EBS qui n’est pas vide
Résolution
Avant d’initialiser un volume, 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
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 script PowerShell 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
EC2Launch v2 est bloqué avec des messages de journaux (agent.log
) similaires à ce qui suit :
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
SAC est activé et utilise le port série. Pour plus d’informations, consultez Utilisation de 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.
agent-config.yml
non valide empêche l’ouverture de la boîte de dialogue des paramètres EC2Launch v2
Description
Les paramètres EC2Launch v2 tentent d’analyser le fichier agent-config.yml
avant d’ouvrir la boîte de dialogue. Si le fichier de configuration YAML ne suit pas le schéma pris en charge, la boîte de dialogue affiche l’erreur suivante :
Unable to parse configuration file agent-config.yml. Review configuration file. Exiting application.
Résolution
-
Vérifiez que le fichier de configuration est conforme au schéma pris en charge.
-
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. -
Vous pouvez également recommencer en supprimant
agent-config.yml
. Les paramètres EC2Launch v2 génèrent 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 entrées sous forme de tableau, telles que executeScript et executeProgram. Pour obtenir un exemple de la façon d’écrire le script en tant que tableau, consultez executeScript.
Journaux d’événements Windows
EC2Launch v2 publie les journaux des évènements Windows pour les évènements importants, tels que le démarrage du service, Windows est prêt et la réussite et 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.
Les ID d’événement fournissent des informations sur un événement et identifient de manière unique certains événements. 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:
.
Les ID d’événement à quatre chiffres incluent des informations sur l’étape, la tâche et la gravité d’un événement.
Rubriques
Format de l’ID d’événement
Le tableau suivant indique le format d’un identificateur 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 - Avant-première 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 des exemples d’ID d’événement.
-
5000
- Windows est prêt à l’emploi -
3010
- Activation de la tâche Windows dans l’étape PreReady a réussi -
6013
- La définition de la tâche de fond d’écran à l’étape PostReady Local Data a rencontré une erreur
Schéma du journal des événements Windows
ID de message/ID d’é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 |
Sortie du journal de la console EC2Launch v2
Cette section contient un exemple de sortie du journal de la console pour EC2Launch v2 et répertorie tous les messages d’erreur du journal de la console EC2Launch v2 pour vous aider à résoudre les problèmes. Pour plus d'informations sur la sortie de la console de l'instance et sur la manière d'y accéder, consultez Sortie de la console de l’instance.
Sortie du journal de la console EC2Launch v2
Voici un exemple de sortie du journal de la console pour EC2Launch v2.
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
Messages du journal de la console EC2Launch v2
Voici 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}