Configuración de EC2Launch v2
Esta sección contiene información acerca de cómo configurar las opciones para EC2Launch v2.
Los temas incluyen:
Cambiar la configuración mediante el cuadro de diálogo de configuración de EC2Launch v2
El siguiente procedimiento describe cómo utilizar el cuadro de diálogo de configuración de EC2Launch v2 para habilitar o desactivar la configuración.
Si configuró de forma incorrecta las tareas personalizadas en el archivo agent-config.yml e intenta abrir el cuadro de diálogo configuración de Amazon EC2Launch, recibirá un mensaje de error. Para ver un esquema de ejemplo, consulte Ejemplo: agent-config.yml.
-
Lance y conéctese a la instancia de Windows.
-
En el menú Inicio, elija Todos los programas y, a continuación, vaya a la Configuración de EC2Launch.
-
En la pestaña General del cuadro de diálogo Configuración de EC2Launch, puede habilitar o desactivar la siguiente configuración.
-
Set Computer Name (Establecer nombre del equipo)
Si esta configuración está habilitada (está desactivada de forma predeterminada), el nombre de host actual se compara con el nombre de host deseado en cada arranque. Si los nombres de host no coinciden, el nombre de host se restablece y el sistema, opcionalmente, se reinicia para recoger el nuevo nombre de host. Si no se especifica un nombre de host personalizado, se genera mediante la dirección IPv4 privada con formato hexadecimal, por ejemplo,
ip-AC1F4E6
. Para evitar que se modifique el nombre de host no habilite esta opción. -
Extender volumen de arranque
Esta opción amplía dinámicamente
Disk 0
/Volume 0
para incluir cualquier espacio sin particionar. Esto puede resultar útil cuando la instancia se arranca desde un volumen de dispositivo raíz con un tamaño personalizado. -
Establecer cuenta de administrador
Cuando está habilitado, puede establecer los atributos de nombre de usuario y contraseña para la cuenta de administrador que se crea en el equipo local. Si esta característica no está habilitada, no se crea una cuenta de administrador en el sistema después de Sysprep. Proporcione una contraseña en
adminPassword
solo siadminPasswordtype
esSpecify
.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 enagent-config.yml
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 utiliza la contraseña especificada en el archivo unattend.xml. Si no especifica una contraseña en unattend.xml, la cuenta del administrador se desactiva.
-
-
Iniciar servicio SSM
Cuando se selecciona, el servicio Systems Manager queda habilitado para comenzar después de Sysprep. EC2Launch v2 realiza todas las tareas descritas anteriormente, y SSM Agent procesa las solicitudes para las funcionalidades de Systems Manager, como Run Command y administrador de estados.
Puede usar Run Command para actualizar las instancias existentes de manera que utilicen la versión más reciente del servicio EC2Launch v2 y de SSM Agent. Para obtener más información, consulte Actualizar SSM Agent utilizando Run Command en la Guía del usuario de Systems Manager de AWS.
-
Optimizar ENA
Cuando se selecciona, la configuración de ENA se configura para garantizar que la configuración del escalado del lado de recepción de ENA y la configuración de profundidad de cola de recepción se optimizan para AWS. Para obtener más información, consulte Configurar la afinidad de la CPU de RSS.
-
Habilitar SSH
Esta configuración habilita OpenSSH para versiones posteriores de Windows para permitir la administración remota del sistema.
-
Habilitar tramas gigantes
Seleccione esta opción para habilitar las tramas gigantes. Las tramas gigantes pueden tener efectos no deseados en las comunicaciones de red, así que asegúrese de comprender cómo afectarán las tramas gigantes al sistema antes de habilitarlas. Para obtener más información acerca de las tramas gigantes, consulte Tramas gigantes (9 001 MTU).
-
Preparativos para la creación de imágenes
Seleccione si desea que su instancia EC2 se cierre con o sin Sysprep. Cuando desee ejecutar Sysprep con EC2Launch v2, elija “Shutdown with Sysprep” (Apagar con Sysprep).
-
-
En la pestaña Sufijo de DNS, puede seleccionar si desea agregar una lista de sufijos DNS para la resolución DNS de los servidores que se ejecutan en EC2, sin proporcionar el nombre de dominio completo. Los sufijos de DNS pueden contener las variables
$REGION
y$AZ
. Solo se agregarán a la lista los sufijos que aún no existan. -
En la pestaña Fondo de pantalla, puede configurar el fondo de pantalla de la instancia con una imagen de fondo y especificar los detalles de la instancia que se mostrarán en el fondo de pantalla. Amazon EC2 genera los detalles cada vez que inicia sesión.
Puede configurar el fondo de pantalla con los siguientes controles.
-
Mostrar detalles de la instancia en el fondo de pantalla: esta casilla activa o desactiva la visualización de detalles de la instancia en el fondo de pantalla.
-
Ruta de la imagen (.jpg): especifique la ruta a la imagen que se va a utilizar como fondo de pantalla.
-
Seleccionar atributos que mostrar en el fondo de pantalla: seleccione las casillas con los detalles de la instancia que quiere que aparezcan en el fondo de pantalla. Desmarque las casillas con los detalles de la instancia previamente seleccionados que quiere eliminar del fondo de pantalla.
-
Mostrar etiquetas de la instancia en el fondo de pantalla: seleccione una de las siguientes configuraciones para mostrar etiquetas de la instancia en el fondo de pantalla:
-
Ninguna: no se muestra ninguna etiqueta de la instancia en el fondo de pantalla.
-
Mostrar todas: se muestran todas las etiquetas de la instancia en el fondo de pantalla.
-
Mostrar filtradas: se muestran etiquetas especificadas de la instancia en el fondo de pantalla. Al seleccionar esta configuración, aparece el cuadro Filtro de etiquetas de instancia, donde puede especificar las etiquetas de instancia que quiere mostrar.
nota Debe habilitar las etiquetas en los metadatos para que se muestren en el fondo de pantalla. Para obtener más información sobre los metadatos y las etiquetas de instancias, consulte Trabajar con etiquetas de instancia en los metadatos de instancia.
-
-
-
En la pestaña Volúmenes, seleccione si desea inicializar los volúmenes asociados a la instancia. La habilitación establece letras de unidad para cualquier volumen adicional y las amplía para utilizar el espacio disponible. Si selecciona Todo, se inicializarán todos los volúmenes de almacenamiento. Si selecciona Dispositivos, solo se inicializarán los dispositivos especificados en la lista. Debe escribir el dispositivo para cada dispositivo que se inicialice. Utilice los dispositivos enumerados en la consola EC2, por ejemplo,
xvdb
o/dev/nvme0n1
. La lista desplegable muestra los volúmenes de almacenamiento asociados a la instancia. Para introducir un dispositivo que no esté asociado a la instancia, escríbalo en el campo de texto.Nombre, Letra y Partición son campos opcionales. Si no se especifica ningún valor para Partición, los volúmenes de almacenamiento mayores de 2 TB se inicializan con el tipo de partición GPT y los menores de 2 TB se inicializan con el tipo de partición MBR. Si los dispositivos están configurados y un dispositivo que no sea NTFS contiene una tabla de particiones o los primeros 4 KB del disco contienen datos, se omite el disco y se registra la acción.
A continuación se muestra un archivo YAML de configuración de ejemplo creado a partir de los parámetros escritos en el cuadro de diálogo EC2Launch.
version: 1.0 config: - stage: boot tasks: - task: extendRootPartition - stage: preReady tasks: - task: activateWindows inputs: activation: type: amazon - task: setDnsSuffix inputs: suffixes: - $REGION.ec2-utilities.amazonaws.com - task: setAdminAccount inputs: password: type: random - task: setWallpaper inputs: path: C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg attributes: - hostName - instanceId - privateIpAddress - publicIpAddress - instanceSize - availabilityZone - architecture - memory - network - stage: postReady tasks: - task: startSsm
Estructura del directorio de EC2Launch v2
EC2Launch v2 debe instalarse en los siguientes directorios:
-
Binarios de servicio:
%ProgramFiles%\Amazon\EC2Launch
-
Datos del servicio (configuración, archivos de registro y archivos de estado):
%ProgramData%\Amazon\EC2Launch
De manera predeterminada, Windows oculta los archivos y las carpetas en C:\ProgramData
. Para ver los directorios y los archivos de EC2Launch v2, debe ingresar la ruta en Windows Explorer o cambiar las propiedades de la carpeta para mostrar los archivos y las carpetas ocultos.
El directorio %ProgramFiles%\Amazon\EC2Launch
contiene binarios y bibliotecas auxiliares. Incluye los siguientes subdirectorios:
-
settings
-
EC2LaunchSettingsUI.exe
: interfaz de usuario para modificar el archivoagent-config.yml
-
YamlDotNet.dll
: DLL para admitir algunas operaciones en la interfaz de usuario
-
-
tools
-
ebsnvme-id.exe
: herramienta para examinar los metadatos de los volúmenes de EBS en la instancia -
AWSAcpiSpcrReader.exe
: herramienta para determinar el puerto COM correcto a usar -
EC2LaunchEventMessage.dll
: DLL para admitir el registro de eventos de Windows para EC2Launch.
-
-
service
-
EC2LaunchService.exe
— Ejecutable de servicio de Windows que se inicia cuando el agente de lanzamiento se ejecuta como un servicio.
-
-
EC2Launch.exe
: ejecutable principal de EC2Launch -
EC2LaunchAgentAttribution.txt
: atribución del código utilizado en EC2 Launch
El directorio %ProgramData%\Amazon\EC2Launch
contiene los subdirectorios siguientes. Todos los datos producidos por el servicio, incluidos los registros, la configuración y el estado, se almacenan en este directorio.
-
config
: configuraciónEl archivo de configuración del servicio se almacena en este directorio como
agent-config.yml
. Este archivo se puede actualizar para modificar, agregar o eliminar tareas predeterminadas ejecutadas por el servicio. El permiso para crear archivos en este directorio se encuentra restringido a la cuenta de administrador a fin de evitar la escalada de privilegios. -
log
: registros de instanciasLos registros del servicio (
agent.log
), la consola (console.log
), el rendimiento (bench.log
) y los errores (error.log
) se almacenan en este directorio. Los archivos de registro se anexan en las ejecuciones posteriores del servicio. -
state
: datos del estado del servicioEl estado que utiliza el servicio para determinar qué tareas deben ejecutarse se almacena aquí. Hay un archivo
.run-once
que indica si el servicio ya se ejecutó después de Sysprep (por lo que las tareas con una frecuencia de una vez se omitirán en la siguiente ejecución). Este subdirectorio incluye unstate.json
yprevious-state.json
para realizar un seguimiento del estado de cada tarea. -
sysprep
: SysprepEste directorio contiene archivos que se utilizan para determinar qué operaciones debe realizar Sysprep cuando crea una AMI de Windows personalizada que se puede reutilizar.
Configurar EC2Launch v2 mediante la CLI
Puede utilizar la interfaz de línea de comandos (CLI) para ajustar la configuración de EC2Launch y administrar el servicio. La siguiente sección contiene descripciones e información de uso de los comandos de la CLI que puede utilizar para administrar EC2Launch v2.
Comandos
collect-logs
Recopila archivos de registro para EC2Launch, comprime los archivos y los coloca en un directorio especificado.
Ejemplo
ec2launch collect-logs -o C:\Mylogs.zip
Uso
ec2launch collect-logs [flags]
Flags
-h
, --help
ayuda para collect-logs
-o
, --output string
ruta a los archivos de registro de salida comprimidos
get-agent-config
Imprime agent-config.yml
en el formato especificado (JSON o YAML). Si no se especifica ningún formato, agent-config.yml
se imprime en el formato especificado anteriormente.
Ejemplo
ec2launch get-agent-config -f json
Ejemplo 2
Los siguientes comandos de PowerShell muestran cómo editar y guardar el archivo agent-config
en formato JSON.
$config = ec2launch get-agent-config --format json | ConvertFrom-Json $jumboFrame =@" { "task": "enableJumboFrames" } "@ $config.config | %{if($_.stage -eq 'postReady'){$_.tasks += (ConvertFrom-Json -InputObject $jumboFrame)}} $config | ConvertTo-Json -Depth 6 | Out-File -encoding UTF8 $env:ProgramData/Amazon/EC2Launch/config/agent-config.yml
Uso
ec2launch get-agent-config [flags]
Flags
-h
, --help
ayuda para get-agent-config
-f
, --format string
formato de salida del archivo agent-config
: json
, yaml
list-volumes
Muestra todos los volúmenes de almacenamiento asociados a la instancia, incluidos los volúmenes efímeros y de EBS.
Ejemplo
ec2launch list-volumes
Uso
ec2launch list-volumes
Flags
-h
, --help
ayuda para list-volumes
reset
Elimina el archivo .run-once
para que las tareas especificadas para ejecutarse una vez se ejecuten en la siguiente ejecución; opcionalmente, elimina los registros de servicio y sysprep.
Ejemplo
ec2launch reset -c
Uso
ec2launch reset [flags]
Flags
-b
, --block
bloquea el comando reset
hasta que se detiene el servicio. Si el comando de reestablecimiento se ejecuta con la marca --block
como parte de la tarea executeScript
, el argumento detach
debe establecerse en true (verdadero). Para obtener más información, consulte el ejemplo 4 en executeScript .
-c
, --clean
limpia los registros de instancias antes de reset
-h
, --help
ayuda para reset
run
Ejecuciones de EC2Launch v2.
Ejemplo
ec2launch run
Uso
ec2launch run [flags]
Flags
-h
, --help
ayuda para run
status
Obtiene el estado del servicio EC2Launch. Opcionalmente bloquea el proceso hasta que finalice el servicio. El código de salida del proceso determina el estado del servicio:
-
0
— el servicio se ejecutó con éxito. -
1
— el servicio se ejecutó y falló. -
2
: el servicio se sigue ejecutando. -
3
: el servicio se encuentra en estado desconocido. El estado del servicio es detenido o sin ejecución. -
4
: se produjo un error al intentar recuperar el estado del servicio. -
5
: el servicio no se está ejecutando y se desconoce el estado de la última ejecución conocida. Esto podría significar una de las siguientes opciones:-
tanto el
state.json
yprevious-state.json
se han eliminado. -
el
previous-state.json
se encuentra dañado.
Este es el estado del servicio después de ejecutar el comando reset.
-
Ejemplo:
ec2launch status -b
Uso
ec2launch status [flags]
Flags
-b
,--block
bloquea el proceso hasta que los servicios terminen de ejecutarse
-h
,--help
ayuda para status
sysprep
Restablece el estado del servicio, actualiza unattend.xml
, desactiva RDP y ejecuta Sysprep.
Ejemplo:
ec2launch sysprep
Uso
ec2launch sysprep [flags]
Flags
-b
,--block
bloquea el comando sysprep
hasta que se detiene el servicio. Si el comando de reestablecimiento se ejecuta con la marca --block
como parte de la tarea executeScript
, el argumento detach
debe establecerse en true (verdadero). Para obtener más información, consulte el ejemplo 4 en executeScript .
-c
,--clean
limpia los registros de instancias antes de sysprep
-h
,--help
ayuda para Sysprep
-s
,--shutdown
cierra la instancia después de sysprep
validar
Valida el archivo agent-config
C:\ProgramData\Amazon\EC2Launch\config\agent-config.yml
.
Ejemplo
ec2launch validate
Uso
ec2launch validate [flags]
Flags
-h
, --help
ayuda para validate
versión
Obtiene la versión ejecutable.
Ejemplo
ec2launch version
Uso
ec2launch version [flags]
Flags
-h
, --help
ayuda para version
fondo de pantalla
Establece el nuevo fondo de pantalla en la ruta de fondo de pantalla que se proporciona (archivo .jpg) y muestra los detalles de la instancia seleccionada.
Sintaxis
ec2launch wallpaper ^ --path="C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg" ^ --all-tags ^ --attributes=hostName,instanceId,privateIpAddress,publicIpAddress,instanceSize,availabilityZone,architecture,memory,network
Entradas
Parámetros
- --allowed-tags [
nombre de etiqueta 1
,nombre de etiqueta n
] -
(Opcional) Matriz de JSON codificada en Base64 de nombres de etiquetas de instancias que mostrar en el fondo de pantalla. Puede utilizar esta etiqueta o la
--all-tags
, pero no ambas. - --attributes
cadena de atributos 1
,cadena de atributos n
-
(Opcional) Lista separada por comas de cadenas de atributos de
wallpaper
para aplicar la configuración al fondo de pantalla. - [--path | -p]
cadena de ruta
-
(Obligatorio) Especifica la ruta del archivo de imagen de fondo de
wallpaper
.
Flags
- --all-tags
-
(Opcional) Muestra todas las etiquetas de instancia en el fondo de pantalla. Puede utilizar esta etiqueta o la
--allowed-tags
, pero no ambas. - [--help | -h]
-
Muestra ayuda para el comando wallpaper.
Configuración de tareas de EC2Launch v2
Esta sección incluye el esquema de configuración, las tareas, detalles y ejemplos para agent-config.yml
y datos del usuario.
Tareas y ejemplos
- Esquema: agent-config.yml
- Esquema: datos de usuario
- activateWindows
- enableJumboFrames
- enableOpenSsh
- executeProgram
- executeScript
- extendRootPartition
- initializeVolume
- optimizeEna
- setAdminAccount
- setDnsSuffix
- setHostName
- setWallpaper
- startSsm
- sysprep
- writeFile
- Ejemplo: agent-config.yml
- Ejemplo: datos de usuario
Esquema: agent-config.yml
La estructura del archivo agent-config.yml
se muestra a continuación. Tenga en cuenta que no es posible repetir una tarea en la misma etapa. Para ver las propiedades de las tareas, consulte las descripciones de tareas siguientes.
JSON
{ "version": "1.0", "config": [ { "stage": "string", "tasks": [ { "task": "string", "inputs": { ... } }, ... ] }, ... ] }
YAML
version: 1.0 config: - stage: string tasks: - task: string inputs: ... ... ...
Esquema: datos de usuario
La estructura de los datos de usuario se muestra a continuación. La lista tasks
se analiza y se ejecuta de la misma manera que la lista tasks
en el archivo agent-config.yml. No se puede repetir una tarea. Para ver las propiedades de las tareas, consulte las descripciones de tareas siguientes.
JSON
{ "version": "1.0", "tasks": [ { "task": "string", "inputs": { ... }, }, ... ] }
YAML
version: 1.0 tasks: - task: string inputs: ... ...
activateWindows
Activa Windows frente a un conjunto de servidores AWS KMS. La activación se omite si se detecta que la instancia es de tipo “traiga su propia licencia (BYOL)”.
Frecuencia: una vez
AllowedStages — [PreReady]
Entradas —
activation
: (mapa)
type
: (cadena) tipo de activación que se va a utilizar, se establece en amazon
Ejemplo
task: activateWindows inputs: activation: type: amazon
enableJumboFrames
Habilita tramas gigantes, que aumentan la unidad de transmisión máxima (MTU) del adaptador de red. Para obtener más información, consulte Tramas gigantes (9 001 MTU).
Frecuencia: siempre
AllowedStages — [PostReady, UserData]
Entradas: ninguna
Ejemplo
task: enableJumboFrames
enableOpenSsh
Habilita Windows OpenSSH y agrega la clave pública de la instancia a la carpeta de claves autorizadas.
Frecuencia: una vez
AllowedStages — [PreReady, UserData]
Entradas: ninguna
Ejemplo
En el ejemplo siguiente se muestra cómo habilitar OpenSSH en una instancia y agregar la clave pública de la instancia a la carpeta de claves autorizadas. Esta configuración solo funciona en instancias que ejecutan Windows Server 2019 y en versiones posteriores.
task: enableOpenSsh
executeProgram
Ejecuta un programa con argumentos opcionales y una frecuencia especificada.
Frecuencia: consulte Entradas
AllowedStages — [PostReady, UserData]
Entradas —
frequency
: (cadena) uno entre once
y always
path
: (cadena) ruta al ejecutable
arguments
: (lista de cadenas) lista de argumentos de cadena para pasar al ejecutable
runAs
: (cadena) se debe establecer en localSystem
Ejemplo
En el ejemplo siguiente se muestra cómo ejecutar un archivo ejecutable que ya se encuentra en una instancia.
task: executeProgram inputs: - frequency: always path: C:\Users\Administrator\Desktop\setup.exe arguments: ['-quiet']
Ejemplo 2
En el ejemplo siguiente se muestra cómo ejecutar un archivo ejecutable que ya se encuentra en una instancia. Esta configuración instala un archivo .exe
de VLC que está presente en la unidad C:
de la instancia. /L=1033
y /S
son argumentos de VLC pasados como una lista de cadenas con el archivo .exe
de VLC.
task: executeProgram inputs: - frequency: always path: C:\vlc-3.0.11-win64.exe arguments: ['/L=1033','/S'] runAs: localSystem
executeScript
Ejecuta un script con argumentos opcionales y una frecuencia especificada.
Frecuencia: consulte Entradas
AllowedStages — [PostReady, UserData]
Entradas —
frequency
: (cadena) uno entre once
y always
type
: (cadena) uno entre batch
y powershell
arguments
: (lista de cadenas) lista de argumentos de cadena para pasar al shell Este parámetro no es compatible cuando type
se configura como batch
.
content
: (cadena) contenido de la secuencia de comandos
runAs
: (cadena) uno entre admin
y localSystem
detach
: (booleano) de manera predeterminada es false
. Establezca true
si el script debe ejecutarse en modo desconectado, donde EC2Launch lo ejecuta simultáneamente con otras tareas. Los códigos de salida de script (incluido 3010
) no surten efecto cuando detach
está establecido como true
.
Ejemplo
task: executeScript inputs: - frequency: always type: powershell content: | Get-Process | Out-File -FilePath .\Process.txt runAs: localSystem - frequency: always type: batch content: | systeminfo
Ejemplo 2
En el siguiente ejemplo se muestra cómo ejecutar un script de PowerShell en una instancia EC2. Esta configuración crea un archivo de texto en la unidad C:
.
task: executeScript inputs: - frequency: always type: powershell runAs: admin content: |- New-Item -Path 'C:\PowerShellTest.txt' -ItemType File Set-Content 'C:\PowerShellTest.txt' "hello world"
Ejemplo 3
El siguiente ejemplo muestra un script idempotent que reinicia una instancia varias veces.
task: executeScript inputs: - frequency: always type: powershell runAs: localSystem content: |- $name = $env:ComputerName if ($name -ne $desiredName) { Rename-Computer -NewName $desiredName exit 3010 } $domain = Get-ADDomain if ($domain -ne $desiredDomain) { Add-Computer -DomainName $desiredDomain exit 3010 } $telnet = Get-WindowsFeature -Name Telnet-Client if (-not $telnet.Installed) { Install-WindowsFeature -Name "Telnet-Client" exit 3010 }
Ejemplo 4
Puede ejecutar comandos de la CLI de EC2Launch v2 como parte de los scripts. Los comandos reset
y sysprep
deben incluir la marca --block
porque dependen de que el agente termine primero. Cuando se utiliza la marca --block
, el parámetro detach
para esta tarea se debe establecer en true (verdadero). Se produce un interbloqueo cuando se utiliza la marca --block
en un script no desconectado. Los comandos detectan el posible interbloqueo y salen con un error. En el siguiente ejemplo se muestra un script que restablece el estado del agente después de que el agente termine de ejecutarse.
task: executeScript inputs: - frequency: always type: powershell runAs: localSystem detach: true content: |- & 'C:\Program Files\Amazon\EC2Launch\ec2launch.exe' reset -c -b
extendRootPartition
Extiende el volumen raíz para utilizar todo el espacio disponible en el disco.
Frecuencia: una vez
AllowedStages — [Boot]
Entradas: ninguna
Ejemplo
task: extendRootParitition
initializeVolume
Inicializa los volúmenes asociados a la instancia para que se activen y se particionen. 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 Windowsletter
siempre se aplica cuando se ejecuta esta tarea, independientemente de si la unidad ya está inicializada.
Frecuencia: siempre
AllowedStages — [PostReady, UserData]
Entradas —
initialize
: (cadena) tipo de estrategia de inicialización a usar; uno entre all
y devices
devices
: (lista de mapas)
device
: identificador de dispositivo utilizado al crear la instancia; algunos ejemplos son xvdb
, xvdf
o /dev/nvme0n1
name
: (cadena) nombre de unidad a asignar
letter
: (cadena) letra de unidad a asignar
partition
: (cadena) tipo de partición a usar; uno entre mbr y gpt
Ejemplo 1
En el ejemplo siguiente se muestran las entradas de la tarea InitializeVolume
para establecer los volúmenes seleccionados que se inicializarán.
task: initializeVolume inputs: initialize: devices devices: - device: xvdb name: MyVolumeOne letter: D partition: mbr - device: /dev/nvme0n1 name: MyVolumeTwo letter: E partition: gpt
Ejemplo 2
En el ejemplo siguiente se muestra cómo inicializar volúmenes de EBS asociados con una instancia. Esta configuración inicializará todos los volúmenes vacíos de EBS asociados con la instancia. Si un volumen no está vacío, entonces no se inicializará.
task: initializeVolume inputs: initialize: all
optimizeEna
Optimiza la configuración de ENA en función del tipo de instancia actual; podría reiniciar la instancia.
Frecuencia: siempre
AllowedStages — [PostReady, UserData]
Entradas: ninguna
Ejemplo
task: optimizeEna
setAdminAccount
Establece atributos para la cuenta de administrador predeterminada que se crea en el equipo local.
Frecuencia: una vez
AllowedStages — [PreReady]
Entradas —
name
: (cadena) nombre de la cuenta de administrador
password
: (mapa)
type
: (cadena) estrategia para establecer la contraseña, ya sea como static
, random
o doNothing
data
: (cadena) almacena datos si el campo type
es estático
Ejemplo
task: setAdminAccount inputs: name: Administrator password: type: random
setDnsSuffix
Agrega sufijos DNS a la lista de sufijos de búsqueda. Sólo se agregan a la lista los sufijos que aún no existen.
Frecuencia: siempre
AllowedStages — [PreReady]
Entradas —
suffixes
: (lista de cadenas) enumera uno o varios sufijos DNS válidos; las variables de sustitución válidas son $REGION
y $AZ
Ejemplo
task: setDnsSuffix inputs: suffixes: - $REGION.ec2-utilities.amazonaws.com
setHostName
Establece el nombre de host del equipo en una cadena personalizada o, si no se especifica hostName
, la dirección IPv4 privada.
Frecuencia: siempre
AllowedStages — [PostReady, UserData]
Entradas —
hostName
: (cadena) nombre de host opcional, que debe tener el siguiente formato.
-
Debe tener 15 caracteres o menos
-
Debe contener sólo caracteres alfanuméricos (a-z, A-Z, 0-9) y guión (-).
-
No debe estar compuesta únicamente por caracteres numéricos.
reboot
: (booleano) indica si se permite un reinicio cuando se cambia el nombre de host
Ejemplo
task: setHostName inputs: reboot: true
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.
La ruta del archivo de acceso directo es:
$env:SystemDrive/Users/<user>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/setwallpaper.lnk
Cuando elimina la tarea setWallpaper
, no se elimina este archivo de acceso directo. Para obtener más información, consulte La tarea setWallpaper no está habilitada pero el fondo de pantalla se restablece al reiniciar.
Configuración del fondo de pantalla
Puede utilizar los siguientes ajustes para configurar el fondo de pantalla.
- AllowedStages
-
(Opcional) Valores válidos:
PreReady
,UserData
. - Frecuencia
-
(Opcional) Valores válidos:
always
. - Entradas
-
Parámetros de entrada que puede proporcionar y atributos que puede establecer para configurar el fondo de pantalla:
- attributes (lista de cadenas)
-
(Opcional) Puede agregar uno o más de los siguientes atributos al fondo de pantalla:
-
architecture
-
availabilityZone
-
hostName
-
instanceId
-
instanceSize
-
memory
-
network
-
privateIpAddress
-
publicIpAddress
-
- InstanceTags
-
(Opcional) Puede utilizar exactamente una de las siguientes opciones para esta configuración.
-
AllTags (cadena) (Todas las etiquetas): agregue todas las etiquetas de instancia a su fondo de pantalla.
instanceTags: AllTags
-
InstanceTags (lista de cadenas) (Etiquetas de instancias): especifica una lista de nombres de etiquetas de instancia para agregarlos al fondo de pantalla. Por ejemplo:
instanceTags: - Tag 1 - Tag 2
-
- path (cadena)
-
(Obligatorio) La ruta del archivo de imagen local en formato .jpg que se va a utilizar en la imagen de fondo de pantalla.
Ejemplo
El siguiente ejemplo muestra las entradas de configuración del fondo de pantalla que establecen la ruta del archivo de la imagen de fondo del fondo de pantalla, junto con las etiquetas de instancia denominadas Tag 1
y Tag 2
, y los atributos que incluyen el nombre de host, el ID de la instancia y las direcciones IP públicas y privadas de la instancia.
task: setWallpaper inputs: path: C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg attributes: - hostName - instanceId - privateIpAddress - publicIpAddress instanceTags: - Tag 1 - Tag 2
Debe habilitar las etiquetas en los metadatos para que se muestren en el fondo de pantalla. Para obtener más información sobre los metadatos y las etiquetas de instancias, consulte Trabajar con etiquetas de instancia en los metadatos de instancia.
startSsm
Comienza el servicio Systems Manager (SSM) siguiendo Sysprep.
Frecuencia: siempre
AllowedStages — [PostReady, UserData]
Entradas: ninguna
Ejemplo
task: startSsm
sysprep
Restablece el estado del servicio, actualiza unattend.xml
, desactiva RDP y ejecuta Sysprep. Esta tarea sólo se ejecuta después de que se hayan completado todas las demás tareas.
Frecuencia: una vez
AllowedStages — [UserData]
Entradas —
clean
: (booleano) limpia los registros de instancia antes de ejecutar Sysprep
shutdown
: (booleano) cierra la instancia después de ejecutar Sysprep
Ejemplo
task: sysprep inputs: clean: true shutdown: true
writeFile
Escribe un archivo en un destino.
Frecuencia: consulte Entradas
AllowedStages — [PostReady, UserData]
Entradas —
frequency
: (cadena) uno entre once
y always
destination
: (cadena) ruta en la que escribir el contenido
content
: (cadena) texto para escribir en el destino
Ejemplo
task: writeFile inputs: - frequency: once destination: C:\Users\Administrator\Desktop\booted.txt content: Windows Has Booted
Ejemplo: agent-config.yml
En el ejemplo siguiente se muestran los valores del archivo de configuración agent-config.yml
.
version: 1.0 config: - stage: boot tasks: - task: extendRootPartition - stage: preReady tasks: - task: activateWindows inputs: activation: type: amazon - task: setDnsSuffix inputs: suffixes: - $REGION.ec2-utilities.amazonaws.com - task: setAdminAccount inputs: password: type: random - task: setWallpaper inputs: path: C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg attributes: - hostName - instanceId - privateIpAddress - publicIpAddress - instanceSize - availabilityZone - architecture - memory - network - stage: postReady tasks: - task: startSsm
Ejemplo: datos de usuario
Para obtener más información sobre datos de usuario, consulte Ejecutar comandos en la instancia de Windows durante el lanzamiento.
En el siguiente ejemplo se muestra la configuración de los datos de usuario.
version: 1.0 tasks: - task: executeScript inputs: - frequency: always type: powershell runAs: localSystem content: |- New-Item -Path 'C:\PowerShellTest.txt' -ItemType File
El siguiente formato es compatible con la versión anterior de este servicio. Se ejecuta como una tarea executeScript
en la etapa UserData
. A fin de imitar el comportamiento de la versión anterior, se establecerá para que se ejecute como un proceso desconectado.
<powershell> $file = $env:SystemRoot + "\Temp" + (Get-Date).ToString("MM-dd-yy-hh-mm") New-Item $file -ItemType file </powershell> <persist>true</persist>
Códigos de salida y reinicios de EC2Launch v2
Puede utilizar EC2Launch v2 para definir cómo los scripts manejan los códigos de salida. De forma predeterminada, el código de salida del último comando ejecutado en un script se registra como el código de salida de todo el script. Por ejemplo, si una secuencia de comandos incluye tres comandos y el primer comando falla pero los siguientes se ejecutan correctamente, el estado de ejecución se informa como success
porque el comando final se ha realizado correctamente.
Si desea que un script reinicie una instancia, debe especificar el exit
3010
en el script, incluso cuando el reinicio sea el último paso del script. exit 3010
indica a EC2Launch v2 que reinicie la instancia y llame nuevamente al script hasta que devuelva un código de salida que no sea 3010
, o hasta que se haya alcanzado el número máximo de reinicios. EC2Launch v2 permite un máximo de 5 reinicios por tarea. Si intentas reiniciar una instancia desde un script utilizando un mecanismo diferente, como por ejemplo Restart-Computer
, el estado de ejecución del script será incoherente. Por ejemplo, puede quedarse atascado en un bucle de reinicio o no realizar el reinicio.
Si utiliza un formato de datos de usuario XML que es compatible con agentes antiguos, los datos de usuario pueden ejecutarse más veces de las que desea. Para obtener más información, consulte El servicio ejecuta datos de usuario más de una vez en la sección de resolución de problemas.
EC2Launch v2 y Sysprep
El servicio EC2Launch v2 ejecuta Sysprep, una herramienta de Microsoft que le permite crear una AMI de Windows personalizada que se puede reutilizar. Cuando EC2Launch v2 llama a Sysprep, utiliza los archivos de %ProgramData%\Amazon\EC2Launch
para determinar qué operaciones realizar. Puede editar estos archivos de manera indirecta mediante el cuadro de diálogo Configuración de EC2Launch o directamente mediante un editor YAML o un editor de texto. Sin embargo, hay algunas opciones de configuración avanzada que no están disponibles en el cuadro de diálogo Configuración de EC2Launch, por lo que debe editar dichas entradas directamente.
Si crea una AMI desde una instancia después de actualizar su configuración, la nueva configuración se aplica a cualquier instancia que se lance desde la nueva AMI. Para obtener información acerca de la creación de una AMI, consulte Creación de una AMI de Windows personalizada.