Creación de una AMI mediante Windows Sysprep con EC2Config - Amazon Elastic Compute Cloud

Creación de una AMI mediante Windows Sysprep con EC2Config

Cuando crea una imagen a partir de una instancia con el servicio de EC2Config instalado, EC2Config realiza tareas específicas a medida que se prepara la imagen. Esto incluye trabajar con Windows Sysprep. Para obtener más información, consulte Fases de Windows Sysprep.

Acciones de Windows Sysprep

Windows Sysprep y el servicio EC2Config realizan las siguientes acciones al preparar una imagen.

  1. Cuando elige Apagado con Sysprep en el cuadro de diálogo Propiedades del servicio EC2, el sistema ejecuta el comando ec2config.exe -sysprep.

  2. El servicio EC2Config lee el contenido del archivo BundleConfig.xml. De forma predeterminada, este archivo está ubicado en el siguiente directorio: C:\Program Files\Amazon\Ec2ConfigService\Settings.

    El archivo BundleConfig.xml incluye la siguiente configuración. Puede cambiar esta configuración:

    • AutoSysprep: indica si utilizar Windows Sysprep automáticamente. No es necesario cambiar este valor si ejecuta Windows Sysprep desde el cuadro de diálogo EC2 Service Properties. El valor predeterminado es No.

    • SetRDPCertificate: establece un certificado autofirmado para el servidor de Escritorio remoto. De este modo puede utilizar el Protocolo de escritorio remoto (RDP) de forma segura para conectarse a la instancia. Si las nuevas instancias deben utilizar un certificado, cambie el valor a Yes. Esta configuración no se utiliza con instancias de Windows Server 2012 porque estos sistemas operativos pueden generar sus propios certificados. El valor predeterminado es No.

    • SetPasswordAfterSysprep: establece una contraseña aleatoria para una instancia recién iniciada, la cifra con la clave de inicialización del usuario y devuelve la contraseña cifrada a la consola. Si las nuevas instancias no deben configurarse con una contraseña cifrada aleatoria, cambie el valor a No. El valor predeterminado es Yes.

    • PreSysprepRunCmd: La ubicación del comando que se debe ejecutar. De forma predeterminada, el comando se encuentra en el siguiente directorio: C:\Program Files\Amazon\Ec2ConfigService\Scripts\BeforeSysprep.cmd

  3. El sistema ejecuta BeforeSysprep.cmd. Este comando crea una clave del Registro como la siguiente:

    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f

    La clave de registro deshabilita las conexiones RDP hasta que se vuelvan a habilitar. Deshabilitar las conexiones RDP es una medida de seguridad necesaria porque, durante la primera sesión de arranque tras ejecutarse Windows Sysprep, hay un breve período en el que RDP habilita las conexiones y la contraseña del administrador está vacía.

  4. El servicio EC2Config llama a Windows Sysprep al ejecutar el siguiente comando:

    sysprep.exe /unattend: "C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml" /oobe /generalize /shutdown

Fase Generalize

  • La herramienta elimina la información y la configuración específicas de la imagen, como el nombre del equipo y el SID. Si la instancia pertenece a un dominio, se elimina de dicho dominio. El archivo de respuestas sysprep2008.xml incluye la siguiente configuración que afecta a esta fase:

    • PersistAllDeviceInstalls: Esta configuración evita que Windows Setup elimine y vuelva a configurar dispositivos, lo que acelera el proceso de preparación de imágenes, ya que las AMI de Amazon requieren la ejecución de ciertos controladores y la nueva detección de dichos controladores podría llevar tiempo.

    • DoNotCleanUpNonPresentDevices: Esta configuración conserva la información Plug and Play de los dispositivos que no están presentes en ese momento.

  • Windows Sysprep apaga el sistema operativo al prepararse para crear la AMI. El sistema inicia una nueva instancia o bien inicia la instancia original.

Fase Specialize

El sistema genera los requisitos específicos del sistema operativo, como el nombre del equipo o un SID. Además, el sistema realiza las siguientes acciones, en función de la configuración que especifique en el archivo de respuestas sysprep2008.xml.

  • CopyProfile: Windows Sysprep se puede configurar para eliminar todos los perfiles de usuario, incluido el perfil de administrador integrado. Esta configuración conserva la cuenta de administrador incorporada para que cualquier personalización que haya realizado en la cuenta se traslade a la nueva imagen. El valor predeterminado es True.

    CopyProfile sustituye el perfil predeterminado con el perfil de administrador local existente. Todas las cuentas en las que se haya iniciado sesión después de ejecutar Windows Sysprep recibirán una copia de dicho perfil y su contenido en el primer inicio de sesión.

    Si no tiene ninguna personalización de perfiles de usuario específica que desee trasladar a la nueva imagen, cambie esta configuración a False. Windows Sysprep eliminará todos los perfiles de usuario, lo que permite ahorrar tiempo y espacio en disco.

  • TimeZone: de forma predeterminada, la zona horaria está establecida en tiempo universal coordinado (UTC).

  • Synchronous command with order 1: El sistema ejecuta el siguiente comando que habilita la cuenta de administrador y especifica el requisito de contraseña.

    net user Administrator /ACTIVE:YES /LOGONPASSWORDCHG:NO /EXPIRES:NEVER /PASSWORDREQ:YES

  • Synchronous command with order 2: El sistema codifica la contraseña de administrador. Esta medida de seguridad está diseñada para evitar que la instancia sea accesible una vez se complete Windows Sysprep si no habilitó la configuración de ec2setpassword.

    C:\Program Files\Amazon\Ec2ConfigService\ScramblePassword.exe" -u Administrator

  • Synchronous command with order 3: El sistema ejecuta el siguiente comando:

    C:\Program Files\Amazon\Ec2ConfigService\Scripts\SysprepSpecializePhase.cmd

    Este comando añade la siguiente clave de registro, que vuelve a habilitar RDP:

    añadir reg. "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

Fase OOBE

  1. Utilizando el archivo de respuestas del servicio EC2Config, el sistema especifica las siguientes configuraciones:

    • <InputLocale>en-US</InputLocale>

    • <SystemLocale>en-US</SystemLocale>

    • <UILanguage>en-US</UILanguage>

    • <UserLocale>en-US</UserLocale>

    • <HideEULAPage>true</HideEULAPage>

    • <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>

    • <NetworkLocation>Other</NetworkLocation>

    • <ProtectYourPC>3</ProtectYourPC>

    • <BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>

    • <TimeZone>UTC</TimeZone>

    • <RegisteredOrganization>Amazon.com</RegisteredOrganization>

    • <RegisteredOwner>Amazon</RegisteredOwner>

    nota

    Durante las fases generalize y specialize, el servicio EC2Config monitoriza el estado del sistema operativo. Si EC2Config detecta que el sistema operativo se encuentra en una fase de Sysprep, publica el siguiente mensaje en el registro del sistema:

    EC2ConfigMonitorState: 0 Windows is being configured. SysprepState=IMAGE_STATE_UNDEPLOYABLE

  2. Una vez completada la fase OOBE, el sistema ejecuta SetupComplete.cmd desde la siguiente ubicación: C:\Windows\Setup\Scripts\SetupComplete.cmd. En las AMI públicas de Amazon anteriores a abril de 2015, este archivo estaba vacío y no se ejecutaba nada en la imagen. En las AMI públicas con fecha posterior a abril de 2015, el archivo incluye el siguiente valor: call "C:\Program Files\Amazon\Ec2ConfigService\Scripts\PostSysprep.cmd".

  3. El sistema ejecuta PostSysprep.cmd, que realiza las siguientes operaciones:

    • Establece la contraseña del administrador local de forma que no venza. Si la contraseña vence, es posible que los administradores no puedan iniciar sesión.

    • Establece el nombre del equipo de MSSQLServer (si está instalado) para que esté in sincronizado con la AMI.

Después de Sysprep

Una vez se complete Windows Sysprep, el servicio EC2Config envía el siguiente mensaje a la salida de la consola:

Windows sysprep configuration complete.
			Message: Sysprep Start
			Message: Sysprep End

A continuación, EC2Config realiza las siguientes acciones:

  1. Lee el contenido del archivo config.xml y muestra todos los complementos habilitados.

  2. Ejecuta todos los complementos “Before Windows is ready” simultáneamente.

    • Ec2SetPassword

    • Ec2SetComputerName

    • Ec2InitializeDrives

    • Ec2EventLog

    • Ec2ConfigureRDP

    • Ec2OutputRDPCert

    • Ec2SetDriveLetter

    • Ec2WindowsActivate

    • Ec2DynamicBootVolumeSize

  3. Una vez que ha finalizado, envía el mensaje “Windows is ready” a los registros del sistema de la instancia.

  4. Ejecuta todos los complementos “After Windows is ready” simultáneamente.

    • Amazon CloudWatch Logs

    • UserData

    • AWS Systems Manager (Systems Manager)

Para obtener más información acerca de los complementos de Windows, consulte Uso del servicio EC2Config para realizar tareas durante la inicialización de una instancia del sistema operativo Windows heredado de EC2.

Ejecución de Windows Sysprep con el servicio EC2Config

Utilice el siguiente procedimiento para crear una AMI estandarizada mediante Windows Sysprep y el servicio EC2Config.

  1. En la consola de Amazon EC2, localice o cree una AMI que desee duplicar.

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

  3. Personalícela.

  4. Especifique los valores de configuración en el archivo de respuestas del servicio EC2Config:

    C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml

  5. En el menú Start de Windows, elija All Programs y, a continuación, elija EC2ConfigService Settings.

  6. Elija la pestaña Image del cuadro de diálogo Ec2 Service Properties. Para obtener más información acerca de las opciones y la configuración del cuadro de diálogo de Ec2 Service Properties, consulte Ec2 Service Properties.

  7. Seleccione una opción para la contraseña del administrador y, a continuación, seleccione Shutdown with Sysprep o Shutdown without Sysprep. EC2Config edita los archivos de configuración en función de la opción que haya seleccionado para la contraseña.

    • Random: EC2Config genera una contraseña, la cifra con la clave del usuario y muestra la contraseña cifrada a la consola. Esta configuración se deshabilita tras la primera inicialización para que esta contraseña persista si la instancia se reinicia o si se detiene y se vuelve a iniciar.

    • Specify: la contraseña se almacena en el archivo de respuestas de Windows Sysprep en formato no cifrado (texto sin cifrar). Cuando Windows Sysprep vuelve a ejecutarse, establece la contraseña del administrador. Si apaga en equipo en este momento, la contraseña se establece inmediatamente. Al volver a iniciarse el servicio, se elimina la contraseña del administrador. Es importante recordar esta contraseña, ya que no podrá volver a recuperarla.

    • Keep Existing: la contraseña existente para la cuenta del administrador no cambia al ejecutar Windows Sysprep o al reiniciar EC2Config. Es importante recordar esta contraseña, ya que no podrá volver a recuperarla.

  8. Seleccione OK.

Cuando se le solicite que confirme que desea ejecutar Windows Sysprep y cerrar la instancia, haga clic en . Verá que EC2Config ejecuta Windows Sysprep. A continuación, se cierra la sesión en la instancia y esta se cierra. Si comprueba la página Instancias en la consola de Amazon EC2, el estado de la instancia cambia de Running a Stopping y, finalmente, a Stopped. En este momento, es seguro crear una AMI desde esta instancia.

Puede invocar la herramienta Windows Sysprep manualmente desde la línea de comando utilizando el siguiente comando:

"%programfiles%\amazon\ec2configservice\"ec2config.exe -sysprep""
nota

Las comillas dobles del comando no son necesarias si el shell del CMD ya está en el directorio C:\Program Files\Amazon\EC2ConfigService\.

No obstante, debe prestar especialmente atención para asegurarse de que las opciones del archivo XML especificadas en la carpeta Ec2ConfigService\Settings sean correctas, ya que, en caso contrario, es posible que no pueda conectarse a la instancia. Para obtener más información sobre los archivos de configuración, consulte Archivos de configuración de EC2Config. Para ver un ejemplo de cómo configurar y ejecutar Windows Sysprep desde la línea de comando, consulte Ec2ConfigService\Scripts\InstallUpdates.ps1.