Amazon Elastic Compute Cloud
Guía del usuario de instancias de Windows

Configuración de una instancia de Windows con EC2Launch

EC2Launch es un conjunto de scripts de Windows PowerShell que sustituye al servicio EC2Config en las AMI para Windows Server 2016 y versiones posteriores.

Tareas de EC2Launch

EC2Launch realiza las siguientes tareas de manera predeterminada cuando la instancia se inicia por primera vez:

  • Configura un fondo de pantalla nuevo en el que se representa información sobre la instancia.

  • Establece el nombre del equipo.

  • Envía información sobre la instancia a la consola de Amazon EC2.

  • Envía la huella digital del certificado RDP a la consola de EC2.

  • Establece una contraseña aleatoria para la cuenta de administrador.

  • Añade sufijos de DNS.

  • Amplía dinámicamente la partición del sistema operativo para incluir cualquier espacio sin particionar.

  • Ejecuta datos de usuario (si se especifica). Para obtener más información acerca de cómo especificar datos de usuario, consulte Uso de los datos de usuario de la instancia.

  • Establece rutas estáticas persistentes para alcanzar el servicio de metadatos y los servidores KMS.

    importante

    Si se crea una AMI personalizada desde esta instancia, estas rutas se capturan como parte de la configuración del SO y todas las instancias nuevas lanzadas desde la AMI conservarán las mismas rutas, independientemente de la ubicación de la subred. Para actualizar las rutas, consulte Actualización de rutas de metadatos/KMS para Server 2016 y versiones posteriores al lanzar una AMI personalizada.

La siguientes tareas ayudan a mantener la compatibilidad con versiones anteriores del servicio EC2Config. También puede configurar EC2Launch para que realice estas tareas al inicio:

  • Inicializar volúmenes de EBS secundarios.

  • Enviar registros de eventos de Windows a los registros de la consola de EC2.

  • Enviar el mensaje Windows is ready to use (Windows está listo para utilizarse) a la consola de EC2.

Para obtener más información acerca de Windows Server 2019, consulte Comparación de características entre las versiones de Windows Server en Microsoft.com.

Verificación de la versión de EC2Launch

Use el siguiente comando de Windows PowerShell para verificar la versión instalada de EC2Launch.

PS C:\> Test-ModuleManifest -Path "C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1" | Select Version

Estructura de directorios de EC2Launch

EC2Launch se instala de manera predeterminada en las AMI para Windows Server 2016 y versiones posteriores, en el directorio raíz C:\ProgramData\Amazon\EC2-Windows\Launch.

nota

De manera predeterminada, Windows oculta los archivos y las carpetas en C:\ProgramData. Para ver los directorios y los archivos de EC2Launch, debe escribir la ruta de acceso en el Explorador de Windows o cambiar las propiedades de carpeta para ver los archivos y carpetas ocultos.

El directorio Launch contiene los subdirectorios siguientes.

  • Scripts: contiene los scripts de PowerShell que conforman EC2Launch.

  • Module: contiene el módulo para crear scripts relacionados con Amazon EC2.

  • Config: contiene archivos de configuración de scripts que se pueden personalizar.

  • Sysprep: contiene los recursos de Sysprep.

  • Settings: contiene una aplicación para la interfaz gráfica de usuario de Sysprep.

  • Logs: contiene los archivos de registro generados por los scripts.

Configuración de EC2Launch

Después de inicializar por primera vez la instancia, puede volver a configurar EC2Launch para que se vuelva a ejecutar y realice diferentes tareas al inicio.

Configurar tareas de inicialización

Especifique las opciones en el archivo LaunchConfig.json para habilitar o deshabilitar las siguientes tareas de inicialización:

  • Establecer el nombre del equipo.

  • Configurar un fondo de pantalla nuevo.

  • Añadir una lista de sufijos de DNS.

  • Ampliar el tamaño del volumen de arranque.

  • Establecer la contraseña del administrador.

Para configurar los ajustes de inicialización

  1. En la instancia que se va a configurar, abra el archivo siguiente en un editor de texto: C:\ProgramData\Amazon\EC2-Windows\Launch\Config\LaunchConfig.json.

  2. Actualice la configuración siguiente como sea necesario y guarde los cambios. Proporcione una contraseña en adminPassword solo si adminPasswordtype es Specify.

    { "setComputerName": false, "setWallpaper": true, "addDnsSuffixList": true, "extendBootVolumeSize": true, "handleUserData": true, "adminPasswordType": "Random | Specify | DoNothing", "adminPassword": "password that adheres to your security policy (optional)" }

    Los tipos de contraseñas se definen de la siguiente manera:

    Random

    EC2Launch genera una contraseña y la cifra usando la clave del usuario. El sistema deshabilita esta configuración tras el lanzamiento de la instancia para que esta contraseña persista si la instancia se reinicia o si se detiene y se inicia.

    Specify

    EC2Launch usa la contraseña que ha especificado en adminPassword. Si la contraseña no cumple los requisitos del sistema, EC2Launch genera una contraseña aleatoria en su lugar. La contraseña se almacena en LaunchConfig.json como texto sin cifrar y se elimina cuando Sysprep define la contraseña del administrador. EC2Launch cifra la contraseña usando la clave del usuario.

    DoNothing

    EC2Launch usa la contraseña que ha especificado en el archivo unattend.xml. Si no especifica una contraseña en el archivo unattend.xml, la cuenta del administrador se deshabilitará.

  3. En Windows PowerShell, ejecute el siguiente comando para programar el script para que se ejecute como una tarea programada de Windows. El script se ejecuta una vez durante el siguiente arranque y, luego, deshabilita estas tareas para que no vuelvan a ejecutarse.

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule

Programar EC2Launch para que se ejecute en cada arranque

Puede programar EC2Launch para que se ejecute en cada arranque en lugar de solo en el arranque inicial.

Para permitir que EC2Launch se ejecute en cada arranque:

  1. Abra Windows PowerShell y ejecute el comando siguiente:

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -SchedulePerBoot
  2. O lance el ejecutable con el siguiente comando:

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Settings\Ec2LaunchSettings.exe

    A continuación, seleccione Run EC2Launch on every boot. Puede especificar que su instancia EC2 Shutdown without Sysprep o Shutdown with Sysprep.

nota

Al permitir que EC2Launch se ejecute en cada arranque, se realizarán los siguientes cambios en LaunchConfig.json la próxima vez que se ejecute EC2Launch:

  • AdminPasswordType se volverá a establecer en DoNothing para que la contraseña no cambie en cada arranque.

  • HandleUserData se volverá a establecer en false a menos que los datos de usuarios tengan persist establecido como true. Para obtener más información sobre los scripts de datos de usuario, consulte Scripts de datos de usuario en la guía del usuario de Amazon EC2.

De igual modo, si no quiere restablecer la contraseña en el siguiente arranque, debería establecer AdminPasswordType en DoNothing antes de arrancar.

Inicialización de unidades y mapeos de letras de unidad

Especifique opciones en el archivo DriveLetterMappingConfig.json para mapear letras de unidades a volúmenes en la instancia EC2. El script realiza esta operación si las unidades no se han inicializado y particionado aún.

Para mapear las letras de unidad con los volúmenes

  1. Abra el archivo C:\ProgramData\Amazon\EC2-Windows\Launch\Config\DriveLetterMappingConfig.json en un editor de texto.

  2. Especifique la siguiente configuración del volumen y guarde los cambios:

    { "driveLetterMapping": [ { "volumeName": "sample volume", "driveLetter": "H" } ] }
  3. Abra Windows PowerShell y utilice el siguiente comando para ejecutar el script de EC2Launch que inicializa los discos:

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1

    Para inicializar los discos cada vez que se arranca la instancia, añada la marca -Schedule de la siguiente manera:

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1 -Schedule

Envío de registros de eventos de Windows a la consola de EC2

Especifique opciones en el archivo EventLogConfig.json para enviar registros de eventos de Windows a los registros de la consola de EC2.

Para configurar ajustes para enviar registros de eventos de Windows

  1. En la instancia, abra el archivo C:\ProgramData\Amazon\EC2-Windows\Launch\Config\EventLogConfig.json en un editor de texto.

  2. Configure los siguientes ajustes del registro y guarde los cambios:

    { "events": [ { "logName": "System", "source": "An event source (optional)", "level": "Error | Warning | Information", "numEntries": 3 } ] }
  3. En Windows PowerShell, ejecute el siguiente comando para que el sistema programe el script para que se ejecute como una tarea programada de Windows cada vez que se inicia la instancia.

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\SendEventLogs.ps1 -Schedule

    Los registros pueden tardar tres minutos o más en aparecer en los registros de la consola de EC2.

Enviar del mensaje Windows Is Ready después de un inicio correcto

El servicio EC2Config envía el mensaje "Windows is ready" a la consola EC2 después de cada inicio. EC2Launch solo envía este mensaje la primera vez que se inicia. Para que sea compatible con versiones anteriores del servicio EC2Config, puede programar EC2Launch para que envíe este mensaje después de cada inicio. En la instancia, abra Windows PowerShell y ejecute el comando siguiente. El sistema programa el script para que se ejecute como una tarea programada de Windows.

PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\SendWindowsIsReady.ps1 -Schedule

Uso de Sysprep con EC2Launch

Sysprep simplifica el proceso de duplicado de una instalación personalizada de Windows Server 2016 y versiones posteriores. EC2Launch ofrece un archivo de respuestas predeterminado y archivos de lotes para Sysprep que automatizan y protegen el proceso de preparación de imágenes de la AMI. Es opcional modificar estos archivos. Estos archivos se encuentran de manera predeterminada en el siguiente directorio: C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep.

importante

No utilice Sysprep para crear una copia de seguridad de instancias. Sysprep elimina la información específica del sistema. Si elimina esta información, podrían producirse consecuencias no deseadas en una copia de seguridad de instancias.

El archivo de respuestas EC2Launch y los archivos de lotes de Sysprep incluyen lo siguiente:

Unattend.xml

Este es el archivo de respuestas predeterminado. Si ejecuta SysprepInstance.ps1 o elige ShutdownWithSysprep en la interfaz de usuario, el sistema lee los ajustes en este archivo.

BeforeSysprep.cmd

Personalice este archivo de lote para que ejecute comandos antes de que EC2Launch ejecute Sysprep.

SysprepSpecialize.cmd

Personalice este archivo de lote para que ejecute comandos durante la fase de especialización de Sysprep.

Ejecución de Sysprep con EC2Launch

En la instalación completa de Windows Server 2016 y versiones posteriores (con la experiencia de escritorio), puede ejecutar Sysprep con EC2Launch manualmente o con la aplicación EC2 Launch Settings.

Para ejecutar Sysprep utilizando la aplicación EC2Launch Settings

  1. En la consola de Amazon EC2, localice o cree una AMI de Windows Server 2016 o posterior.

  2. Lance una instancia de Windows desde la AMI.

  3. Conéctese a la instancia de Windows y personalícela.

  4. Busque la aplicación EC2LaunchSettings y ejecútela. De forma predeterminada, se encuentra en el siguiente directorio: C:\ProgramData\Amazon\EC2-Windows\Launch\Settings.

    
                            Aplicación EC2 Launch Settings
  5. Seleccione o borre las opciones que correspondan. Esta configuración se almacena en el archivo LaunchConfig.json.

  6. En Administrator Password (Contraseña del administrador), realice una de las acciones siguientes:

    • Elija Random (Aleatoria). EC2Launch genera una contraseña y la cifra usando la clave del usuario. El sistema deshabilita esta configuración tras el lanzamiento de la instancia para que esta contraseña persista si la instancia se reinicia o si se detiene y se inicia.

    • Elija Specify (Especificarla) y escriba una contraseña que cumpla los requisitos del sistema. La contraseña se almacena en LaunchConfig.json como texto sin cifrar y se elimina cuando Sysprep define la contraseña del administrador. Si apaga en equipo en este momento, la contraseña se establece inmediatamente. EC2Launch cifra la contraseña usando la clave del usuario.

    • Elija DoNothing (No hacer nada) y especifique una contraseña en el archivo unattend.xml. Si no especifica una contraseña en el archivo unattend.xml, la cuenta del administrador se deshabilitará.

  7. Elija Shutdown with Sysprep (Cerrar con Sysprep).

Para ejecutar Sysprep manualmente utilizando EC2Launch

  1. En la consola de Amazon EC2, localice o cree una AMI para Windows Server 2016 Datacenter Edition o posterior que desee duplicar.

  2. Lance y conéctese a la instancia de Windows.

  3. Personalice la instancia.

  4. Especifique las opciones en el archivo LaunchConfig.json. De forma predeterminada, este archivo se encuentra en el directorio C:\ProgramData\Amazon\EC2-Windows\Launch\Config.

    En adminPasswordType, especifique uno de los siguientes valores:

    Random

    EC2Launch genera una contraseña y la cifra usando la clave del usuario. El sistema deshabilita esta configuración tras el lanzamiento de la instancia para que esta contraseña persista si la instancia se reinicia o si se detiene y se inicia.

    Specify

    EC2Launch usa la contraseña que ha especificado en adminPassword. Si la contraseña no cumple los requisitos del sistema, EC2Launch genera una contraseña aleatoria en su lugar. La contraseña se almacena en LaunchConfig.json como texto sin cifrar y se elimina cuando Sysprep define la contraseña del administrador. EC2Launch cifra la contraseña usando la clave del usuario.

    DoNothing

    EC2Launch usa la contraseña que ha especificado en el archivo unattend.xml. Si no especifica una contraseña en el archivo unattend.xml, la cuenta del administrador se deshabilitará.

  5. (Opcional) Especifique los ajustes en unattend.xml y en los otros archivos de configuración. Si tiene pensado estar presente durante la instalación, no es necesario que realice cambios en estos archivos. Los archivos se encuentran de manera predeterminada en el siguiente directorio: C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep.

  6. En Windows PowerShell, ejecute ./InitializeInstance.ps1 -Schedule. De forma predeterminada, el script se encuentra en el siguiente directorio: C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts. Este script programa la instancia para que se inicialice durante el siguiente arranque. Debe ejecutar este script antes de ejecutar el script SysprepInstance.ps1 en el paso siguiente.

  7. En Windows PowerShell, ejecute ./SysprepInstance.ps1. De forma predeterminada, el script se encuentra en el siguiente directorio: C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts.

Se cierra la sesión en la instancia y esta se cierra. Si comprueba la página Instances (Instancias) en la consola de Amazon EC2, el estado de la instancia cambia de running a stopping y, a continuación, a stopped. En este punto es seguro crear una AMI desde esta instancia.

Actualización de rutas de metadatos/KMS para Server 2016 y versiones posteriores al lanzar una AMI personalizada

Para actualizar las rutas de metadatos/KMS para Server 2016 y versiones posteriores al lanzar una AMI personalizada

  1. Use la interfaz gráfica de usuario (GUI) EC2LaunchSettings (C:\ProgramData\Amazon\EC2-Windows\Launch\Settings\Ec2LaunchSettings.exe) para cerrar el sistema con Sysprep.

  2. Si lo prefiere, puede cerrar el sistema sin Sysprep antes de crear una AMI. Esto establece las tareas de inicialización de lanzamiento de EC2 para que se ejecuten en el siguiente arranque; con ello, se establecen las rutas basadas en la subred en la que se lanzan.

  3. Si lo prefiere, puede reprogramar manualmente las tareas de inicialización de lanzamiento de EC2 antes de crear una AMI desde PowerShell.

importante

Tenga en cuenta el comportamiento predeterminado de restablecimiento de contraseña antes de reprogramar las tareas.