Ejecución de documentos de desde ubicaciones remotas - AWS Systems Manager

Ejecución de documentos de desde ubicaciones remotas

Puede ejecutar documentos de AWS Systems Manager (SSM) desde ubicaciones remotas mediante el documento AWS-RunDocument de SSM predefinido. Este documento admite la ejecución de documentos de SSM almacenados en las siguientes ubicaciones:

  • Repositorios GitHub públicos y privados (no se admite GitHub Enterprise)

  • Buckets de Amazon S3

  • Systems Manager

Si bien también puede ejecutar documentos remotos utilizando State Manager o Automation, capacidades de AWS Systems Manager, el siguiente procedimiento describe solo cómo ejecutar documentos de SSM de remotos utilizando AWS Systems Manager Run Command en la consola de Systems Manager.

nota

AWS-RunDocument se puede emplear para ejecutar solo documentos de SSM de tipo comando, no otros tipos, como manuales de procedimientos de Automation. AWS-RunDocument utiliza el complemento aws:downloadContent. Para obtener más información acerca del complemento aws:downloadContent, consulte aws:downloadContent.

Antes de empezar

Antes de ejecutar un documento remoto, debe realizar las siguientes tareas.

  • Crear un documento de SSM Command y guardarlo en una ubicación remota. Para obtener más información, consulte Crear contenido en el documento de SSM

  • Si tiene previsto ejecutar un documento remoto almacenado en un repositorio GitHub privado, debe crear un parámetro SecureString de Systems Manager para su token de acceso de seguridad GitHub. No puede obtener acceso a un documento remoto en un repositorio GitHub privado pasando manualmente su token por SSH. El token de acceso debe pasarse como parámetro SecureString de Systems Manager. Para obtener más información acerca de cómo crear un parámetro SecureString, consulte Creación de parámetros de Systems Manager.

Ejecutar un documento remoto (consola)

Para ejecutar un documento remoto
  1. Abra la consola de AWS Systems Manager en https://console.aws.amazon.com/systems-manager/.

  2. En el panel de navegación, elija Run Command.

    -o bien-

    Si la página de inicio de AWS Systems Manager se abre primero, elija el icono de menú ( 
    The menu icon
  ) para abrir el panel de navegación y, a continuación, elija Run Command.

  3. Elija Run command (Ejecutar comando).

  4. En la lista Document (Documento), elija AWS-RunDocument.

  5. En Command parameters (Parámetros de comando), para Source type (Tipo de origen), elija una opción.

    • Si elige GitHub, especifique la información correspondiente a Información del origen en el siguiente formato:

      { "owner": "owner_name", "repository": "repository_name", "path": "path_to_document", "getOptions":"branch:branch_name", "tokenInfo": "{{ssm-secure:secure-string-token}}" }

      Por ejemplo:

      { "owner":"TestUser", "repository":"GitHubTestExamples", "path":"scripts/python/test-script", "getOptions":"branch:exampleBranch", "tokenInfo":"{{ssm-secure:my-secure-string-token}}" }
      nota

      getOptions son opciones adicionales para recuperar contenido de una plataforma que no sea maestra o de una confirmación específica en el repositorio. getOptions se pueden omitir si está utilizando la última confirmación en la rama maestra. Solo se requiere el parámetro branch si el documento de SSM se almacena en una sucursal que no sea master.

      Para utilizar la versión de su documento SSM en una confirmación concreta del repositorio, use commitID con getOptions en lugar de branch. Por ejemplo:

      "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
    • Si elige S3, especifique la información correspondiente a Source Info en el siguiente formato:

      {"path":"URL_to_document_in_S3"}

      Por ejemplo:

      {"path":"https://s3.amazonaws.com/DOC-EXAMPLE-BUCKET/scripts/ruby/mySSMdoc.json"}
    • Si elige SSMDocument, especifique la información correspondiente a Source Info en el siguiente formato:

      {"name": "document_name"}

      Por ejemplo:

      {"name": "mySSMdoc"}
  6. En el campo Document parameters (Parámetros del documento), ingrese parámetros para el documento de SSM remoto. Por ejemplo, si ejecuta el documento AWS-RunPowerShell, podría especificar:

    {"commands": ["date", "echo \"Hello World\""]}

    Si ejecuta el documento AWS-ConfigureAWSPack, podría especificar:

    { "action":"Install", "name":"AWSPVDriver" }
  7. En la sección Targets (Destinos), para elegir los nodos administrados en los que desea ejecutar esta operación, especifique las etiquetas, seleccione las instancias o los dispositivos de borde manualmente o especifique un grupo de recursos.

    sugerencia

    Si un nodo administrado que espera ver no aparece en la lista, consulte Solución de problemas de disponibilidad de nodos administrados para obtener consejos de solución de problemas.

  8. En Otros parámetros:

    • En Comentario, ingrese la información acerca de este comando.

    • En Tiempo de espera (segundos), especifique el número de segundos que tiene que esperar el sistema antes de indicar que se ha producido un error en la ejecución del comando general.

  9. En Rate control (Control de velocidad):

    • En Concurrency (Simultaneidad), especifique un número o un porcentaje de los nodos administrados en los que desea ejecutar el comando al mismo tiempo.

      nota

      Si seleccionó los destinos mediante la especificación de etiquetas aplicadas a nodos administrados o de grupos de recursos de AWS y no está seguro de cuántos nodos administrados tienen destino, limite el número de destinos que puede ejecutar el documento al mismo tiempo. Para ello, especifique un porcentaje.

    • En Error threshold (Umbral de errores), especifique cuándo desea parar la ejecución del comando en los demás nodos administrados después de que haya fallado en un número o un porcentaje de los nodos. Por ejemplo, si especifica tres errores, Systems Manager dejará de enviar el comando cuando se reciba el cuarto error. Los nodos administrados que estén procesando el comando todavía pueden enviar errores.

  10. (Opcional) En Opciones de salida, para guardar la salida del comando en un archivo, seleccione el cuadro Write command output to an S3 bucket. Ingrese los nombres del bucket y del prefijo (carpeta) en los cuadros.

    nota

    Los permisos de S3 que conceden la capacidad de escribir datos en un bucket de S3 son los del perfil de instancia (para instancias de EC2) o rol de servicio de IAM (máquinas activadas de manera híbrida) asignados a la instancia, no los del usuario de IAM que realiza esta tarea. Para obtener más información, consulte Configurar permisos de instancia para Systems Manager o Crear un rol de servicio de IAM para un entorno híbrido. Además, si el bucket de S3 especificado se encuentra en una Cuenta de AWS diferente, asegúrese de que el perfil de instancias o el rol de servicio de IAM asociado al nodo administrado tenga los permisos necesarios para escribir en ese bucket.

  11. En la sección Notificaciones de SNS, seleccione la casilla de verificación Habilitar notificaciones de SNS si desea recibir notificaciones sobre el estado de ejecución de los comandos.

    Para obtener más información acerca de la configuración de las notificaciones de Amazon SNS para Run Command, consulte Monitoreo de los cambios de estado de Systems Manager mediante las notificaciones de Amazon SNS.

  12. Elija Ejecutar.

nota

Para obtener información acerca de cómo reiniciar los servidores y las instancias cuando se utiliza Run Command para llamar a scripts, consulte Gestión de reinicios al ejecutar comandos.