

• El panel de AWS Systems Manager CloudWatch dejará de estar disponible después del 30 de abril de 2026. Los clientes pueden seguir utilizando la consola de Amazon CloudWatch para ver, crear y administrar sus paneles de Amazon CloudWatch, tal y como lo hacen actualmente. Para obtener más información, consulte la [documentación del panel de Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

# Creación de asociaciones que ejecuten manuales de estrategia de Ansible
<a name="systems-manager-state-manager-ansible"></a>

Puede crear asociaciones de State Manager que ejecuten manuales de estrategia de Ansible mediante el documento `AWS-ApplyAnsiblePlaybooks` de SSM. State Manager es una herramienta de AWS Systems Manager. Este documento ofrece los siguientes beneficios para ejecutar cuadernos de trabajo:
+ Compatibilidad con la ejecución de cuadernos de trabajo complejos
+ Soporte para descargar manuales de estrategias de GitHub y Amazon Simple Storage Service (Amazon S3)
+ Compatibilidad con la estructura de cuaderno de trabajo comprimido
+ Registro optimizado
+ Capacidad para especificar qué cuaderno de trabajo ejecutar cuando se empaquetan los cuadernos de trabajo

**nota**  
Systems Manager incluye dos documentos de SSM que le permiten crear asociaciones State Manager que ejecutan manuales de estrategia de Ansible: `AWS-RunAnsiblePlaybook` y `AWS-ApplyAnsiblePlaybooks`. El documento `AWS-RunAnsiblePlaybook` está obsoleto. Sigue estando disponible en Systems Manager para fines heredados. Le recomendamos que utilice el documento `AWS-ApplyAnsiblePlaybooks` debido a las mejoras que se describen aquí.  
Las asociaciones que ejecutan manuales de estrategia de Ansible no son compatibles con macOS.

**Compatibilidad con la ejecución de cuadernos de trabajo complejos**

El documento `AWS-ApplyAnsiblePlaybooks` admite cuadernos de trabajo complejos agrupados, ya que copia toda la estructura de archivos en un directorio local antes de ejecutar el cuaderno de trabajo principal especificado. Puede proporcionar libros de trabajo de origen en archivos Zip o en una estructura de directorios. El archivo Zip o directorio se pueden almacenar en GitHub o Amazon S3. 

**Compatibilidad con la descarga de cuadernos de trabajo desde GitHub**

El documento `AWS-ApplyAnsiblePlaybooks` utiliza el complemento `aws:downloadContent` para descargar archivos del cuaderno de trabajo. Los archivos se pueden almacenar en GitHub un único archivo o como un conjunto combinado de archivos de manual de estrategias. Para descargar contenido desde GitHub, especifique información sobre el repositorio de GitHub en formato JSON. A continuación se muestra un ejemplo.

```
{
   "owner":"TestUser",
   "repository":"GitHubTest",
   "path":"scripts/python/test-script",
   "getOptions":"branch:master",
   "tokenInfo":"{{ssm-secure:secure-string-token}}"
}
```

**Compatibilidad para descargar cuadernos de trabajo desde Simple Storage Service (Amazon S3**

También puede almacenar y descargar manuales de estrategias de Ansible en Amazon S3 como un único archivo .zip o una estructura de directorios. Para descargar contenido desde Amazon S3, especifique la ruta al archivo. A continuación se incluyen dos ejemplos.

**Ejemplo 1: descargar un archivo de cuaderno de trabajo específico**

```
{
   "path":"https://s3.amazonaws.com/amzn-s3-demo-bucket/playbook.yml"
}
```

**Ejemplo 2: descargar el contenido de un directorio**

```
{
   "path":"https://s3.amazonaws.com/amzn-s3-demo-bucket/ansible/webservers/"
}
```

**importante**  
Si especifica Amazon S3, el perfil de instancia de AWS Identity and Access Management (IAM) de los nodos administrados debe incluir permisos para el bucket de S3. Para obtener más información, consulte [Configuración de permisos de instancia requeridos para Systems Manager](setup-instance-permissions.md). 

**Compatibilidad con la estructura de cuaderno de trabajo comprimido**

El documento `AWS-ApplyAnsiblePlaybooks` le permite ejecutar archivos .zip comprimidos en el paquete descargado. El documento comprueba si los archivos descargados contienen un archivo comprimido en formato .zip. Si se encuentra un archivo .zip, el documento descomprime automáticamente el archivo y, a continuación, ejecuta la automatización de Ansible especificada.

**Registro optimizado**

El documento `AWS-ApplyAnsiblePlaybooks` incluye un parámetro opcional para especificar distintos niveles de registro. Especifique -v para un nivel de detalle bajo, -vv o -vvv para un nivel de detalle medio y -vvvv para el registro de nivel de depuración. Estas opciones se asignan directamente a las opciones de detalle de Ansible.

**Capacidad para especificar qué cuaderno de trabajo ejecutar cuando se empaquetan los cuadernos de trabajo**

El documento `AWS-ApplyAnsiblePlaybooks` incluye un parámetro obligatorio para especificar qué cuaderno de trabajo ejecutar cuando se agrupan varios cuadernos de trabajo. Esta opción proporciona flexibilidad para ejecutar cuadernos de trabajo para admitir diferentes casos de uso.

## Comprensión de las dependencias instaladas
<a name="systems-manager-state-manager-ansible-depedencies"></a>

Si especifica **True** (Verdadero) para el parámetro **InstallDependencies**, Systems Manager verifica que los nodos tengan las siguientes dependencias instaladas:
+ **Ubuntu Server/Debian Server**: Apt-get (administración de paquetes), Python 3, Ansible, Unzip
+ Versiones compatibles con **Amazon Linux**: Ansible
+ **RHEL**: Python 3, Ansible, Unzip

Si no se encuentra una o varias de estas dependencias, Systems Manager las instala automáticamente.

## Crear una asociación que ejecute manuales de estrategias de Ansible (consola)
<a name="systems-manager-state-manager-ansible-console"></a>

En el siguiente procedimiento se describe cómo utilizar la consola de Systems Manager para crear una asociación de State Manager que ejecuta manuales de estrategias de Ansible mediante el documento de `AWS-ApplyAnsiblePlaybooks`.

**Crear una asociación que ejecute manuales de estrategias de Ansible (consola)**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. En el panel de navegación, elija **State Manager**.

1. Elija **State Manager** y, a continuación, **Create association** (Crear asociación).

1. En **Name (Nombre)**, especifique un nombre que le ayude a recordar el objetivo de la asociación.

1. En la lista **Document** (Documento), elija **`AWS-ApplyAnsiblePlaybooks`**.

1. En la sección **Parameters (Parámetros)**, en **Source Type (Tipo de origen)**, elija **GitHub** o **S3**.

   **GitHub**

   Si elige **GitHub**, ingrese la información del repositorio en el siguiente formato.

   ```
   {
      "owner":"user_name",
      "repository":"name",
      "path":"path_to_directory_or_playbook_to_download",
      "getOptions":"branch:branch_name",
      "tokenInfo":"{{(Optional)_token_information}}"
   }
   ```

   **S3**

   Si elige **S3**, ingrese la información de la ruta en el siguiente formato.

   ```
   {
      "path":"https://s3.amazonaws.com/path_to_directory_or_playbook_to_download"
   }
   ```

1. En **Install Dependencies (Instalar dependencias)**, elija una opción.

1. (Opcional) En **Playbook File (Archivo de cuaderno de trabajo)**, escriba un nombre de archivo. Si el cuaderno de trabajo está contenido en un archivo Zip, especifique una ruta relativa al archivo Zip.

1. (Opcional) En **Variables adicionales**, escriba las variables que desee que State Manager envíe a Ansible en el tiempo de ejecución.

1. (Opcional) En **Check (Comprobar)**,elija una opción.

1. (Opcional) En **Verbose (Detalle)**, elija una opción.

1. En **Targets (Destinos)**, elija una opción. Para obtener más información acerca del uso de los destinos, consulte [Cómo comprender los controles de frecuencia y destinos en las asociaciones de State Manager](systems-manager-state-manager-targets-and-rate-controls.md).

1. En la sección **Specify schedule (Especificar programación)**, elija **On Schedule (De forma programada)** o **No schedule (Sin programación)**. Si elige **On Schedule (De forma programada)**, utilice los botones proporcionados para crear una programación Cron o Rate para la asociación. 

1. En la sección **Opciones avanzadas**, en **Gravedad de conformidad**, elija un nivel de gravedad para la asociación. Los informes de conformidad indican si el estado de asociación es conforme o no conforme, junto con el nivel de gravedad que se indique aquí. Para obtener más información, consulte [Acerca de la conformidad de las asociaciones de State Manager](compliance-about.md#compliance-about-association).

1. En la sección **Rate control** (Control de frecuencia), configure las opciones para ejecutar asociaciones de State Manager a través de una flota de nodos administrados. Para obtener más información sobre el uso de controles de frecuencia, consulte [Cómo comprender los controles de frecuencia y destinos en las asociaciones de State Manager](systems-manager-state-manager-targets-and-rate-controls.md).

   En la sección **Simultaneidad**, elija una opción: 
   + Elija **Targets (Destinos)** para introducir un número absoluto de destinos que pueda ejecutar la asociación de forma simultánea.
   + Elija **porcentaje** para introducir un porcentaje del destino definido que puede ejecutar la asociación de forma simultánea.

   En la sección **Umbral de error**, elija una opción:
   + Elija **errors (errores)** para especificar un número absoluto de errores permitidos antes de que State Manager deje de ejecutar asociaciones en más destinos.
   + Elija **percentage (porcentaje)** para especificar un porcentaje de errores permitidos antes de que State Manager deje de ejecutar asociaciones en más destinos.

1. (Opcional) En **Output options (Opciones de salida)**, para guardar la salida del comando en un archivo, seleccione el cuadro **Enable writing output to S3 (Permitir la escritura de salida en S3)**. 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 instancias asignado al nodo administrado, no los del usuario de IAM que realiza esta tarea. Para obtener más información, consulte [Configuración de permisos de instancia requeridos para Systems Manager](setup-instance-permissions.md) o [Creación de un rol de servicio de IAM para un entorno híbrido](hybrid-multicloud-service-role.md). Además, si el bucket de S3 especificado se encuentra en una Cuenta de AWS diferente, verifique 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.

1. Elija **Crear asociación**.

**nota**  
Si utiliza las etiquetas para crear una asociación en uno o varios nodos de destino y después elimina las etiquetas de un nodo, dicho nodo ya no ejecutará la asociación. El nodo se desvincula del documento de State Manager. 

## Crear una asociación que ejecute manuales de estrategias de Ansible (CLI)
<a name="systems-manager-state-manager-ansible-cli"></a>

En el siguiente procedimiento se describe cómo utilizar AWS Command Line Interface (AWS CLI) para crear una asociación de State Manager que ejecute manuales de estrategias de Ansible mediante el documento `AWS-ApplyAnsiblePlaybooks`. 

**Crear una asociación que ejecute manuales de estrategias de Ansible (CLI)**

1. Si aún no lo ha hecho, instale y configure la AWS Command Line Interface (AWS CLI).

   Para obtener más información, consulte [Instalación o actualización de la última versión de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Ejecute uno de los siguientes comandos para crear una asociación que ejecute manuales de estrategias de Ansible dirigiendo nodos mediante etiquetas. Reemplace cada *example resource placeholder* con su propia información. El comando (A) especifica GitHub como tipo de origen. El comando (B) especifica Amazon S3 como tipo de origen.

   **(A) Origen de GitHub**

------
#### [ Linux & macOS ]

   ```
   aws ssm create-association --name "AWS-ApplyAnsiblePlaybooks" \
       --targets Key=tag:TagKey,Values=TagValue \
       --parameters '{"SourceType":["GitHub"],"SourceInfo":["{\"owner\":\"owner_name\", \"repository\": \"name\", \"getOptions\": \"branch:master\"}"],"InstallDependencies":["True_or_False"],"PlaybookFile":["file_name.yml"],"ExtraVariables":["key/value_pairs_separated_by_a_space"],"Check":["True_or_False"],"Verbose":["-v,-vv,-vvv, or -vvvv"],"TimeoutSeconds":["3600"]}' \
       --association-name "name" \
       --schedule-expression "cron_or_rate_expression"
   ```

------
#### [ Windows ]

   ```
   aws ssm create-association --name "AWS-ApplyAnsiblePlaybooks" ^
       --targets Key=tag:TagKey,Values=TagValue ^
       --parameters '{"SourceType":["GitHub"],"SourceInfo":["{\"owner\":\"owner_name\", \"repository\": \"name\", \"getOptions\": \"branch:master\"}"],"InstallDependencies":["True_or_False"],"PlaybookFile":["file_name.yml"],"ExtraVariables":["key/value_pairs_separated_by_a_space"],"Check":["True_or_False"],"Verbose":["-v,-vv,-vvv, or -vvvv"], "TimeoutSeconds":["3600"]}' ^
       --association-name "name" ^
       --schedule-expression "cron_or_rate_expression"
   ```

------

   A continuación se muestra un ejemplo.

   ```
   aws ssm create-association --name "AWS-ApplyAnsiblePlaybooks" \
       --targets "Key=tag:OS,Values=Linux" \
       --parameters '{"SourceType":["GitHub"],"SourceInfo":["{\"owner\":\"ansibleDocumentTest\", \"repository\": \"Ansible\", \"getOptions\": \"branch:master\"}"],"InstallDependencies":["True"],"PlaybookFile":["hello-world-playbook.yml"],"ExtraVariables":["SSM=True"],"Check":["False"],"Verbose":["-v"]}' \
       --association-name "AnsibleAssociation" \
       --schedule-expression "cron(0 2 ? * SUN *)"
   ```

   **(B) Origen de S**

------
#### [ Linux & macOS ]

   ```
   aws ssm create-association --name "AWS-ApplyAnsiblePlaybooks" \
       --targets Key=tag:TagKey,Values=TagValue \
       --parameters '{"SourceType":["S3"],"SourceInfo":["{\"path\":\"https://s3.amazonaws.com/path_to_Zip_file,_directory,_or_playbook_to_download\"}"],"InstallDependencies":["True_or_False"],"PlaybookFile":["file_name.yml"],"ExtraVariables":["key/value_pairs_separated_by_a_space"],"Check":["True_or_False"],"Verbose":["-v,-vv,-vvv, or -vvvv"]}' \
       --association-name "name" \
       --schedule-expression "cron_or_rate_expression"
   ```

------
#### [ Windows ]

   ```
   aws ssm create-association --name "AWS-ApplyAnsiblePlaybooks" ^
       --targets Key=tag:TagKey,Values=TagValue ^
       --parameters '{"SourceType":["S3"],"SourceInfo":["{\"path\":\"https://s3.amazonaws.com/path_to_Zip_file,_directory,_or_playbook_to_download\"}"],"InstallDependencies":["True_or_False"],"PlaybookFile":["file_name.yml"],"ExtraVariables":["key/value_pairs_separated_by_a_space"],"Check":["True_or_False"],"Verbose":["-v,-vv,-vvv, or -vvvv"]}' ^
       --association-name "name" ^
       --schedule-expression "cron_or_rate_expression"
   ```

------

   A continuación se muestra un ejemplo.

   ```
   aws ssm create-association --name "AWS-ApplyAnsiblePlaybooks" \
       --targets "Key=tag:OS,Values=Linux" \
       --parameters '{"SourceType":["S3"],"SourceInfo":["{\"path\":\"https://s3.amazonaws.com/amzn-s3-demo-bucket/playbook.yml\"}"],"InstallDependencies":["True"],"PlaybookFile":["playbook.yml"],"ExtraVariables":["SSM=True"],"Check":["False"],"Verbose":["-v"]}' \
       --association-name "AnsibleAssociation" \
       --schedule-expression "cron(0 2 ? * SUN *)"
   ```
**nota**  
State ManagerLas asociaciones de no admiten todas las expresiones cron y de frecuencia. Para obtener más información acerca de la creación de expresiones cron y de frecuencia para asociaciones, consulte [Referencia: expresiones cron y rate para Systems Manager](reference-cron-and-rate-expressions.md).

   El sistema intenta crear la asociación en los nodos y aplicar inmediatamente el estado. 

1. Ejecute el siguiente comando para ver un estado actualizado de la asociación que acaba de crear. 

   ```
   aws ssm describe-association --association-id "ID"
   ```