Tutorial: crear un período de mantenimiento para actualizar SSM Agent (AWS CLI)
En la siguiente explicación se muestra cómo utilizar la AWS Command Line Interface (AWS CLI) para crear un periodo de mantenimiento de AWS Systems Manager. También se describe cómo registrar los nodos administrados como destinos y cómo registrar una tarea de Systems Manager Run Command para actualizar SSM Agent.
Antes de empezar
Antes de completar el siguiente procedimiento, debe tener permisos de administrador en los nodos que desea configurar o se le deben haber concedido los permisos adecuados en AWS Identity and Access Management (IAM). Además, verifique que haya al menos un nodo gestionado para Linux en ejecución o que Windows Server esté configurado para Systems Manager en un entorno híbrido y multinube. Para obtener más información, consulte Configuración de AWS Systems Manager.
Temas
Paso 1: introducción
Para ejecutar comandos utilizando la AWS CLI
Si aún no lo ha hecho, instale y configure la AWS Command Line Interface (AWS CLI).
Para obtener información, consulte Instalación o actualización de la última versión de la AWS CLI.
-
Compruebe que un nodo está listo para ser registrado como destino de un periodo de mantenimiento.
Ejecute el siguiente comando para ver qué nodos están en línea.
aws ssm describe-instance-information --query "InstanceInformationList[*]"
Ejecute el siguiente comando para ver los detalles sobre un nodo en particular.
aws ssm describe-instance-information --instance-information-filter-list key=InstanceIds,valueSet=
instance-id
Paso 2: crear el período de mantenimiento
Utilice el siguiente procedimiento para crear un periodo de mantenimiento y especificar sus opciones básicas, como, por ejemplo, programación y duración.
Crear un período de mantenimiento (AWS CLI)
-
Abra la AWS CLI y ejecute los siguientes comandos para crear un periodo de mantenimiento que se ejecute todos los domingos a las 2.00 h, en la zona horaria del Pacífico de EE. UU., con un corte de una hora.
Para obtener más información sobre cómo crear expresiones cron para el parámetro
schedule
, consulte Referencia: expresiones cron y rate para Systems Manager.Para ver una explicación de cómo se relacionan entre sí las distintas opciones relacionadas con la programación de los periodos de mantenimiento, consulte Programación de la ventana de mantenimiento y opciones de periodo activo.
Para obtener más información acerca del uso de la opción
--schedule
, consulte Referencia: expresiones cron y rate para Systems Manager.El sistema devuelve información similar a la siguiente.
{ "WindowId":"mw-0c50858d01EXAMPLE" }
-
Para ver una lista con este y cualquier otro periodo de mantenimiento creado en su Cuenta de AWS de su Región de AWS actual, ejecute el siguiente comando.
aws ssm describe-maintenance-windows
El sistema devuelve información similar a la siguiente.
{ "WindowIdentities": [ { "Cutoff": 1, "Name": "My-First-Maintenance-Window", "NextExecutionTime": "2019-02-03T02:00-08:00", "Enabled": true, "WindowId": "mw-0c50858d01EXAMPLE", "Duration": 2 } ] }
Paso 3: registrar destinos de periodo de mantenimiento (AWS CLI)
Utilice el siguiente procedimiento para registrar un destino con el periodo de mantenimiento creado en el paso 2. Al registrar un destino, debe especificar qué nodos se van a actualizar.
Para registrar destinos de periodo de mantenimiento (AWS CLI)
-
Ejecute el siguiente comando de la . Reemplace cada
example resource placeholder
con su propia información.El sistema devuelve información similar a la siguiente, que incluye un ID de destino de periodo de mantenimiento. Copie o anote el valor de
WindowTargetId
. Debe especificar este ID en el siguiente paso para registrar una tarea para este periodo de mantenimiento.{ "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" }
Comandos alternativos
Utilice el siguiente comando para registrar varios nodos administrados.
Utilice el siguiente comando para registrar nodos utilizando etiquetas.
-
Ejecute el siguiente comando para mostrar los destinos de un periodo de mantenimiento.
aws ssm describe-maintenance-window-targets --window-id "
mw-0c50858d01EXAMPLE
"El sistema devuelve información similar a la siguiente.
{ "Targets": [ { "ResourceType": "INSTANCE", "WindowId": "mw-0c50858d01EXAMPLE", "Targets": [ { "Values": [ "i-02573cafcfEXAMPLE" ], "Key": "InstanceIds" } ], "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" }, { "ResourceType": "INSTANCE", "WindowId": "mw-0c50858d01EXAMPLE", "Targets": [ { "Values": [ "Prod" ], "Key": "tag:Environment" }, { "Values": [ "Web" ], "Key": "tag:Role" } ], "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" } ] }
Paso 4: registrar una tarea de Run Command para el periodo de mantenimiento para actualizar SSM Agent
Utilice el siguiente procedimiento para registrar una tarea de Run Command para el periodo de mantenimiento creado en el paso 2. La tarea de Run Command actualiza SSM Agent en los destinos registrados.
Para registrar una tarea de Run Command para un periodo de mantenimiento para actualizar SSM Agent (AWS CLI)
-
Ejecute el siguiente comando para registrar una tarea de Run Command para el periodo de mantenimiento mediante el valor de
WindowTargetId
en el paso 3. Reemplace cadaexample resource placeholder
con su propia información. La tarea actualiza SSM Agent utilizando el documentoAWS-UpdateSSMAgent
.nota
Si los destinos registrados en el paso anterior son Windows Server 2012 R2 o de versiones anteriores, debe utilizar el documento
AWS-UpdateEC2Config
.El sistema devuelve información similar a la siguiente.
{ "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" }
-
Ejecute el siguiente comando para enumerar todas las tareas registradas para un período de mantenimiento.
aws ssm describe-maintenance-window-tasks --window-id "
mw-0c50858d01EXAMPLE
"El sistema devuelve información similar a la siguiente.
{ "Tasks": [ { "ServiceRoleArn": "arn:aws:iam::111122223333:role/MW-Role", "MaxErrors": "1", "TaskArn": "AWS-UpdateSSMAgent", "MaxConcurrency": "1", "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE", "TaskParameters": {}, "Priority": 10, "WindowId": "mw-0c50858d01EXAMPLE", "Type": "RUN_COMMAND", "Targets": [ { "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ], "Key": "WindowTargetIds" } ], "Name": "UpdateSSMAgent" } ] }