Solucionar problemas de EC2Launch v2
En esta sección, se muestran escenarios de solución de problemas comunes para EC2Launch v2, información sobre cómo ver los registros de eventos de Windows y los mensajes y la salida del registro de la consola.
Solución de problemas de temas
Situaciones comunes de solución de problemas
En esta sección se muestran las situaciones comunes de solución de problemas y los pasos para la resolución.
Situaciones
- El servicio no puede configurar el fondo de pantalla
- El servicio no puede ejecutar datos de usuario
- El servicio ejecuta una tarea sólo una vez
- El servicio no puede ejecutar una tarea
- El servicio ejecuta datos de usuario más de una vez
- Las tareas programadas de EC2Launch v1 no se pueden ejecutar después de la migración a EC2Launch v2
- El servicio inicializa un volumen EBS que no está vacío
- La tarea setWallpaper no está habilitada pero el fondo de pantalla se restablece al reiniciar
- Servicio atascado en estado de ejecución
- agent-config.yml no válido impide que se abra el cuadro de diálogo de configuración de EC2Launch v2
- task:executeScript should be unique and only invoked once
El servicio no puede configurar el fondo de pantalla
Resolución
-
Compruebe que
%AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\setwallpaper.lnk
existe. -
Compruebe
%ProgramData%\Amazon\EC2Launch\log\agent.log
si se ha producido algún error.
El servicio no puede ejecutar datos de usuario
Causa posible: el servicio puede haber devuelto un error antes de ejecutar los datos de usuario.
Resolución
-
Compruebe
%ProgramData%\Amazon\EC2Launch\state\previous-state.json
. -
Compruebe si
boot
,network
,preReady
ypostReadyLocalData
se han marcado como éxito. -
Si una de las etapas devolvió un error, compruebe si hay errores específicos en
%ProgramData%\Amazon\EC2Launch\log\agent.log
.
El servicio ejecuta una tarea sólo una vez
Resolución
-
Compruebe la frecuencia de la tarea.
-
Si el servicio ya se ejecutó después de Sysprep y la frecuencia de la tarea está establecida en
once
, la tarea no se ejecutará de nuevo. -
Configure la frecuencia de la tarea como
always
si desea que se ejecute cada vez que se ejecute EC2Launch v2.
El servicio no puede ejecutar una tarea
Resolución
-
Compruebe las últimas entradas en
%ProgramData%\Amazon\EC2Launch\log\agent.log
. -
Si no se han producido errores, pruebe a ejecutar el servicio manualmente desde
"%ProgramFiles%\Amazon\EC2Launch\EC2Launch.exe" run
para ver si las tareas se realizan correctamente.
El servicio ejecuta datos de usuario más de una vez
Resolución
Los datos de usuario se gestionan de forma diferente entre EC2Launch v1 y EC2Launch v2. EC2Launch v1 ejecuta los datos de usuario como una tarea programada en la instancia cuando configura persist
como true
. Si persist
se establece en false
, la tarea no está programada incluso cuando se cierra con un reinicio o se interrumpe mientras se ejecuta.
EC2Launch v2 ejecuta los datos de usuario como una tarea de agente y realiza un seguimiento de su estado de ejecución. Si los datos de usuario emiten un reinicio del equipo o si los datos de usuario se interrumpieron durante la ejecución, el estado de ejecución persiste como pending
y los datos de usuario se ejecutarán de nuevo en el siguiente arranque de la instancia. Si deseas evitar que el script de datos del usuario se ejecute más de una vez, haz que el script sea idempotente.
El siguiente ejemplo de scripts idempotentes establece el nombre del equipo y se une a un dominio.
<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>
Las tareas programadas de EC2Launch v1 no se pueden ejecutar después de la migración a EC2Launch v2
Resolución
La herramienta de migración no detecta ninguna tarea programada que esté vinculada a scripts de EC2Launch v1; por lo tanto, no configura automáticamente dichas tareas en EC2Launch v2. Para configurar dichas tareas, edita el archivo agent-config.yml o utiliza el Cuadro de diálogo configuración de EC2Launch v2. Por ejemplo, si una instancia tiene una tarea programada que ejecuta InitializeDisks.ps1
, después de ejecutar la herramienta de migración debe especificar los volúmenes que desea iniciar en el cuadro de diálogo configuración de EC2Launch v2. Consulte el paso 6 del procedimiento para Cambiar la configuración mediante el cuadro de diálogo de configuración de EC2Launch v2.
El servicio inicializa un volumen EBS que no está vacío
Resolución
Antes de inicializar un volumen, EC2Launch v2 intenta detectar si está vacío. Si un volumen no está vacío, omite la inicialización. Los volúmenes que se detecten como no vacíos no se inicializan. Un volumen se considera vacío si los primeros 4 KB de un volumen están vacíos, o si un volumen no tiene un diseño de unidad reconocible por Windows
La tarea setWallpaper
no está habilitada pero el fondo de pantalla se restablece al reiniciar
La tarea setWallpaper
crea el archivo de acceso directo setwallpaper.lnk
en la carpeta de inicio de cada usuario existente, excepto el Default User
. Este archivo de acceso directo se ejecuta cuando el usuario inicia sesión por primera vez después del arranque de la instancia. Configura la instancia con un fondo de pantalla personalizado que muestra los atributos de la instancia. Tenga en cuenta que quitar la tarea setWallpaper
no elimina este archivo de acceso directo. Elimine manualmente este archivo o mediante un script.
La ruta del acceso directo es:
$env:SystemDrive/Users/<user>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/setwallpaper.lnk
Resolución
Elimine manualmente este archivo o mediante un script.
Ejemplo de script de PowerShell para eliminar un archivo de acceso directo
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 } } }
Servicio atascado en estado de ejecución
Descripción
EC2Launch v2 se bloquea y presenta mensajes de registro (agent.log
) similares a los siguientes:
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.
Causa posible
SAC está habilitado y utiliza el puerto serie. Para obtener más información, consulte Usar SAC para solucionar problemas de su instancia de Windows.
Resolución
Pruebe los siguientes pasos para resolver este problema:
-
Desactive el servicio que esté utilizando el puerto serie.
-
Si desea que el servicio siga utilizando el puerto serie, escriba scripts personalizados para realizar tareas del agente de inicialización e invóquelas como tareas programadas.
agent-config.yml
no válido impide que se abra el cuadro de diálogo de configuración de EC2Launch v2
Descripción
La configuración de EC2Launch v2 intenta analizar el archivo agent-config.yml
antes de abrir el cuadro de diálogo. Si el archivo de configuración YAML no sigue el esquema admitido, el cuadro de diálogo mostrará el siguiente error:
Unable to parse configuration file agent-config.yml. Review configuration file. Exiting application.
Resolución
-
Compruebe que el archivo de configuración sigue el esquema admitido.
-
Si desea comenzar desde cero, copie el archivo de configuración predeterminado en
agent-config.yml
. Puede utilizar el ejemplo agent-config.yml que se proporciona en la sección Task Configuration (Configuración de tareas). -
También puede comenzar de nuevo eliminando
agent-config.yml
. La configuración de EC2Launch v2 genera un archivo de configuración vacío.
task:executeScript should be unique and only invoked
once
Descripción
No es posible repetir una tarea en la misma etapa.
Resolución
Algunas tareas deben introducirse como una matriz, como executeScript y executeProgram. Para ver un ejemplo de cómo escribir el script como una matriz, consulte executeScript.
Registros de eventos de Windows
EC2Launch v2 publica registros de eventos de Windows para eventos importantes, como el inicio del servicio, la preparación de Windows para empezar a funcionar y el éxito y el error de la tarea. Los identificadores de eventos identifican de forma única un evento en particular. Cada evento contiene información de etapa, tarea y nivel, así como una descripción. Puede establecer desencadenadores para eventos específicos mediante el identificador de evento.
Los ID de eventos proporcionan información sobre un evento e identifican de forma única algunos eventos. El dígito menos significativo de un ID de evento indica la gravedad de un evento.
Evento | Dígito menos significativo |
---|---|
Success
|
. . .0 |
Informational |
. . .1 |
Warning |
. . .2 |
Error |
. . .3 |
Los eventos relacionados con el servicio que se generan cuando se inicia o se detiene el servicio incluyen un identificador de evento de un solo dígito.
Evento | Identificador de un solo dígito |
---|---|
Success
|
0 |
Informational |
1 |
Warning |
2 |
Error |
3 |
Los mensajes de eventos para eventos EC2LaunchService.exe
comienzan por Service:
. Los mensajes de eventos para eventos EC2Launch.exe
no comienzan por Service:
.
Los ID de eventos de cuatro dígitos incluyen información sobre la fase, la tarea y la gravedad de un evento.
Formato de ID de evento
La siguiente tabla muestra el formato del identificador de un evento de EC2Launch v2.
3 | 2 1 | 0 |
---|---|---|
S |
T |
L |
Las letras y números de la tabla representan el tipo de evento y las definiciones siguientes.
Tipo de evento | Definición |
---|---|
S (Etapa) |
0 - Mensaje de nivel de servicio 1 - Arranque 2 - Red 3 - Pre-Ready 5 - Windows está listo 6 - PostReady 7 - Datos de usuario |
T (Tarea) |
Las tareas representadas por los dos valores correspondientes son distintas para cada etapa. Para ver la lista completa de eventos, consulte Esquema de registro de eventos de Windows. |
L (Nivel del evento) |
0 - Éxito 1 - Informativo 2 - Advertencia 3 - Error |
Ejemplos de ID de evento
A continuación se presentan identificadores de evento de ejemplo.
-
5000
: Windows está listo para usar -
3010
: la tarea de activación de Windows en la etapa PreReady se ha realizado correctamente -
6013
: la tarea Establecer fondo de pantalla en la etapa PostReady Local Data encontró un error
Esquema de registro de eventos de Windows
ID de mensaje/evento | Mensaje de evento |
---|---|
. . .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 |
Salida del registro de la consola de EC2Launch v2
Esta sección contiene una salida del registro de la consola de ejemplo de EC2Launch v2 y muestra todos los mensajes de error del registro de la consola de EC2Launch v2 para ayudarle a solucionar problemas. Para obtener más información sobre la salida de la consola de instancias y cómo acceder a ella, consulte Salida de la consola de instancias.
Salidas
Salida del registro de la consola de EC2Launch v2
A continuación, se muestra una salida del registro de la consola de ejemplo de 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
Mensajes de registro de la consola de EC2Launch v2
A continuación, se muestra una lista de todos los mensajes de registro de la consola de 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}