Nota
Este complemento es parte del colección amazon.aws (versión 1.3.0).
Para instalarlo use: ansible-galaxy collection install amazon.aws
.
Para usarlo en un libro de jugadas, especifique: amazon.aws.cloudformation
.
Nuevo en la versión 1.0.0: de amazon.aws
- Sinopsis
- Requisitos
- Parámetros
- Notas
- Ejemplos de
- Valores devueltos
Sinopsis
- Inicia o actualiza una pila de AWS CloudFormation y espera a que se complete.
Requisitos
Los siguientes requisitos son necesarios en el host que ejecuta este módulo.
- boto
- boto3
- botocore> = 1.5.45
- pitón> = 2.6
Parámetros
Parámetro | Opciones / Valores predeterminados | Comentarios |
---|---|---|
aws_access_key cuerda | Clave de acceso de AWS. Si no se establece, se utiliza el valor de la variable de entorno AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY o EC2_ACCESS_KEY. Si perfil se establece este parámetro se ignora. Pasando el aws_access_key y perfil options al mismo tiempo ha quedado obsoleto y las opciones se harán mutuamente excluyentes después de 2022-06-01. alias: ec2_access_key, access_key |
|
aws_ca_bundle sendero | La ubicación de un paquete de CA que se utilizará al validar certificados SSL. Solo se utiliza para módulos basados en boto3. Nota: El paquete CA se lee en el lado del “módulo” y es posible que deba copiarse explícitamente del controlador si no se ejecuta localmente. | |
aws_config diccionario | Un diccionario para modificar la configuración de botocore. Los parámetros se pueden encontrar en https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Solo se usa la clave ‘user_agent’ para los módulos boto. Ver http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto para más configuración de boto. | |
aws_secret_key cuerda | Clave secreta de AWS. Si no se establece, se utiliza el valor de la variable de entorno AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY o EC2_SECRET_KEY. Si perfil se establece este parámetro se ignora. Pasando el aws_secret_key y perfil options al mismo tiempo ha quedado obsoleto y las opciones se harán mutuamente excluyentes después de 2022-06-01. alias: ec2_secret_key, secret_key |
|
backoff_delay entero | Defecto: 3 |
Número de segundos para esperar el próximo reintento. |
backoff_max_delay entero | Defecto: 30 |
Cantidad máxima de tiempo de espera entre reintentos. |
backoff_retries entero | Defecto: 10 |
Número de veces para reintentar la operación. El mecanismo de aceleración de la API de AWS falla en el módulo de CloudFormation, por lo que tenemos que volver a intentarlo un par de veces. |
capacidades lista / elementos = cadena | Defecto: [“CAPABILITY_IAM”, “CAPABILITY_NAMED_IAM”] |
Especifique las capacidades que contiene la plantilla de pila. Los valores válidos son CAPABILITY_IAM , CAPABILITY_NAMED_IAM y CAPABILITY_AUTO_EXPAND . |
changeset_name cuerda | Nombre que se le da al conjunto de cambios al crear un conjunto de cambios. Solo se usa cuando create_changeset = verdadero. De forma predeterminada, se genera un nombre con el prefijo Ansible-STACKNAME en función de los parámetros de entrada. Consulte los documentos de AWS Change Sets para obtener más información. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html | |
create_changeset booleano |
|
Si la pila ya existe, cree un conjunto de cambios en lugar de aplicar los cambios directamente. Consulte los documentos de AWS Change Sets https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html. ADVERTENCIA: si la pila no existe, se creará sin conjunto de cambios. Si estado = ausente, la pila se eliminará inmediatamente sin conjunto de cambios. |
create_timeout entero | La cantidad de tiempo (en minutos) que puede pasar antes de que el estado de la pila se convierta en CREATE_FAILED | |
debug_botocore_endpoint_logs booleano |
|
Utilice un registrador botocore.endpoint para analizar las llamadas API “resource: action” únicas (en lugar de totales) realizadas durante una tarea, generando el conjunto en la clave resource_actions en los resultados de la tarea. Utilice la devolución de llamada aws_resource_action para generar la lista total realizada durante un libro de jugadas. También se puede utilizar la variable de entorno ANSIBLE_DEBUG_BOTOCORE_LOGS. |
disable_rollback booleano |
|
Si una pila no se forma, la reversión eliminará la pila. |
ec2_url cuerda | Url que se utilizará para conectarse a EC2 o su nube Eucalyptus (de forma predeterminada, el módulo utilizará puntos finales EC2). Ignorado para módulos donde se requiere región. Debe especificarse para todos los demás módulos si no se utiliza la región. Si no se establece, se utiliza el valor de la variable de entorno EC2_URL, si existe. alias: aws_endpoint_url, endpoint_url |
|
events_limit entero | Defecto: 200 |
Número máximo de eventos de CloudFormation para obtener de una pila al crearla o actualizarla. |
notificaciones_arns cuerda | Una lista separada por comas de ARN de temas del Servicio de notificación simple (SNS) para publicar eventos relacionados con la pila. | |
on_create_failure cuerda |
|
Acción a tomar en caso de falla en la creación de la pila. Incompatible con el disable_rollback opción. |
perfil cuerda | Utiliza un perfil de boto. Solo funciona con boto> = 2.24.0. Utilizando perfil anulará aws_access_key, aws_secret_key y token de seguridad y apoyo para pasarlos al mismo tiempo que perfil ha quedado obsoleto. aws_access_key, aws_secret_key y token de seguridad se hará mutuamente excluyente con perfil después de 2022-06-01. alias: aws_profile |
|
región cuerda | La región de AWS que se utilizará. Si no se especifica, se utiliza el valor de la variable de entorno AWS_REGION o EC2_REGION, si existe. Ver http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
alias: aws_region, ec2_region |
|
role_arn cuerda | El rol que asume AWS CloudFormation para crear la pila. Consulte los documentos de roles de servicio de AWS CloudFormation. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html | |
token de seguridad cuerda | Token de seguridad de AWS STS. Si no se establece, se utiliza el valor de la variable de entorno AWS_SECURITY_TOKEN o EC2_SECURITY_TOKEN. Si perfil se establece este parámetro se ignora. Pasando el token de seguridad y perfil options al mismo tiempo ha quedado obsoleto y las opciones se harán mutuamente excluyentes después de 2022-06-01. alias: aws_security_token, access_token |
|
stack_name cuerda / requerido | Nombre de la pila de CloudFormation. | |
stack_policy cuerda | La ruta de la política de pila de CloudFormation. Una política no se puede eliminar una vez colocada, pero se puede modificar. por ejemplo, permitir todas las actualizaciones https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html#d0e9051 | |
estado cuerda |
|
Si estado = presente, se creará la pila. Si estado = presente y si la pila existe y la plantilla ha cambiado, se actualizará. Si estado = ausente, se eliminará la pila. |
etiquetas diccionario | Diccionario de etiquetas para asociar con la pila y sus recursos durante la creación de la pila. Se puede actualizar más tarde, la actualización de etiquetas elimina las entradas anteriores. | |
plantilla sendero | La ruta local de la plantilla de CloudFormation. Esta debe ser la ruta completa al archivo, relativa al directorio de trabajo. Si usa roles, esto puede parecer roles/cloudformation/files/cloudformation-example.json . Si estado = presente y la pila tampoco existe todavía plantilla, template_body o template_url debe especificarse (pero solo uno de ellos). Si estado = presente, la pila existe, y ninguno plantilla, template_body ni template_url se especifican, se reutilizará la plantilla anterior. |
|
template_body cuerda | Cuerpo de la plantilla. Use esto para pasar el cuerpo real de la plantilla de CloudFormation. Si estado = presente y la pila tampoco existe todavía plantilla, template_body o template_url debe especificarse (pero solo uno de ellos). Si estado = presente, la pila existe, y ninguno plantilla, template_body ni template_url se especifican, se reutilizará la plantilla anterior. | |
template_format cuerda | Este parámetro se ignora desde Ansible 2.3 y se eliminará después de 2022-06-01. Las plantillas ahora se pasan sin procesar a CloudFormation independientemente del formato. | |
template_parameters diccionario | Defecto: {} |
Una lista de hashes de todas las variables de plantilla para la pila. El valor puede ser una cadena o un dict. Dict se puede utilizar para establecer atributos de parámetros de plantilla adicionales como UsePreviousValue (ver ejemplo). |
template_url cuerda | Ubicación del archivo que contiene el cuerpo de la plantilla. La URL debe apuntar a una plantilla (tamaño máximo de 307.200 bytes) ubicada en un depósito de S3 en la misma región que la pila. Si estado = presente y la pila tampoco existe todavía plantilla, template_body o template_url debe especificarse (pero solo uno de ellos). Si estado = presente, la pila existe, y ninguno plantilla, template_body ni template_url se especifican, se reutilizará la plantilla anterior. | |
termination_protection booleano |
|
Habilite o deshabilite la protección de terminación en la pila. Solo funciona con botocore> = 1.7.18. |
validate_certs booleano |
|
Cuando se establece en “no”, los certificados SSL no se validarán para las versiones de boto> = 2.6.0. |
Notas
Nota
- Las características de CloudFormation cambian con frecuencia y este módulo intenta mantenerse al día. Eso significa que su versión de botocore debería ser nueva. La versión que aparece en los requisitos es la versión más antigua que funciona con el módulo en su totalidad. Algunas funciones pueden requerir versiones recientes y no identificamos una versión mínima para cada función. En lugar de depender de la versión mínima, mantenga botocore actualizado. AWS siempre publica funciones y corrige errores.
- Si los parámetros no se establecen dentro del módulo, las siguientes variables de entorno se pueden usar en orden decreciente de precedencia
AWS_URL
oEC2_URL
,AWS_PROFILE
oAWS_DEFAULT_PROFILE
,AWS_ACCESS_KEY_ID
oAWS_ACCESS_KEY
oEC2_ACCESS_KEY
,AWS_SECRET_ACCESS_KEY
oAWS_SECRET_KEY
oEC2_SECRET_KEY
,AWS_SECURITY_TOKEN
oEC2_SECURITY_TOKEN
,AWS_REGION
oEC2_REGION
,AWS_CA_BUNDLE
- Ansible usa el archivo de configuración boto (típicamente ~ / .boto) si no se proporcionan credenciales. Ver https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGION
oEC2_REGION
se puede usar normalmente para especificar la región de AWS, cuando sea necesario, pero esto también se puede configurar en el archivo de configuración boto
Ejemplos de
- name: create a cloudformation stack amazon.aws.cloudformation: stack_name: "ansible-cloudformation" state: "present" region: "us-east-1" disable_rollback: true template: "files/cloudformation-example.json" template_parameters: KeyName: "jmartin" DiskType: "ephemeral" InstanceType: "m1.small" ClusterSize: 3 tags: Stack: "ansible-cloudformation" # Basic role example - name: create a stack, specify role that cloudformation assumes amazon.aws.cloudformation: stack_name: "ansible-cloudformation" state: "present" region: "us-east-1" disable_rollback: true template: "roles/cloudformation/files/cloudformation-example.json" role_arn: 'arn:aws:iam::123456789012:role/cloudformation-iam-role' - name: delete a stack amazon.aws.cloudformation: stack_name: "ansible-cloudformation-old" state: "absent" # Create a stack, pass in template from a URL, disable rollback if stack creation fails, # pass in some parameters to the template, provide tags for resources created - name: create a stack, pass in the template via an URL amazon.aws.cloudformation: stack_name: "ansible-cloudformation" state: present region: us-east-1 disable_rollback: true template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template template_parameters: KeyName: jmartin DiskType: ephemeral InstanceType: m1.small ClusterSize: 3 tags: Stack: ansible-cloudformation # Create a stack, passing in template body using lookup of Jinja2 template, disable rollback if stack creation fails, # pass in some parameters to the template, provide tags for resources created - name: create a stack, pass in the template body via lookup template amazon.aws.cloudformation: stack_name: "ansible-cloudformation" state: present region: us-east-1 disable_rollback: true template_body: "{{ lookup('template', 'cloudformation.j2') }}" template_parameters: KeyName: jmartin DiskType: ephemeral InstanceType: m1.small ClusterSize: 3 tags: Stack: ansible-cloudformation # Pass a template parameter which uses CloudFormation's UsePreviousValue attribute # When use_previous_value is set to True, the given value will be ignored and # CloudFormation will use the value from a previously submitted template. # If use_previous_value is set to False (default) the given value is used. - amazon.aws.cloudformation: stack_name: "ansible-cloudformation" state: "present" region: "us-east-1" template: "files/cloudformation-example.json" template_parameters: DBSnapshotIdentifier: use_previous_value: True value: arn:aws:rds:es-east-1:000000000000:snapshot:rds:my-db-snapshot DBName: use_previous_value: True tags: Stack: "ansible-cloudformation" # Enable termination protection on a stack. # If the stack already exists, this will update its termination protection - name: enable termination protection during stack creation amazon.aws.cloudformation: stack_name: my_stack state: present template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template termination_protection: yes # Configure TimeoutInMinutes before the stack status becomes CREATE_FAILED # In this case, if disable_rollback is not set or is set to false, the stack will be rolled back. - name: enable termination protection during stack creation amazon.aws.cloudformation: stack_name: my_stack state: present template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template create_timeout: 5 # Configure rollback behaviour on the unsuccessful creation of a stack allowing # CloudFormation to clean up, or do nothing in the event of an unsuccessful # deployment # In this case, if on_create_failure is set to "DELETE", it will clean up the stack if # it fails to create - name: create stack which will delete on creation failure amazon.aws.cloudformation: stack_name: my_stack state: present template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template on_create_failure: DELETE
Valores devueltos
Los valores de retorno comunes están documentados aquí, los siguientes son los campos exclusivos de este módulo:
Llave | Devuelto | Descripción |
---|---|---|
change_set_id cuerda | estado = presente y create_changeset = verdadero | El ID del conjunto de cambios de pila si se creó uno Muestra: arn: aws: cloudformation: us-east-1: 012345678901: changeSet / Ansible-StackName-f4496805bd1b2be824d1e315c6884247ede41eb0 |
eventos lista / elementos = cadena | siempre | Eventos más recientes en el registro de eventos de CloudFormation. Esto puede ser de una ejecución anterior en algunos casos. Muestra: [‘StackEvent AWS::CloudFormation::Stack stackname UPDATE_COMPLETE’, ‘StackEvent AWS::CloudFormation::Stack stackname UPDATE_COMPLETE_CLEANUP_IN_PROGRESS’] |
Iniciar sesión lista / elementos = cadena | siempre | Registros de depuración. Útil para modificar o encontrar un error. Muestra: [‘updating stack’] |
stack_outputs diccionario | estado == presente | Un diccionario clave: valor de todas las salidas de pila definidas actualmente. Si no hay salidas de pila, es un diccionario vacío. Muestra: {‘MySg’: ‘AnsibleModuleTestYAML-CFTestSg-C8UVS567B6NS’} |
stack_resources lista / elementos = cadena | estado == presente | Recursos de pila de AWS y su estado. Lista de diccionarios, un diccionario por recurso. Muestra: [{‘last_updated_time’: ‘2016-10-11T19:40:14.979000+00:00’, ‘logical_resource_id’: ‘CFTestSg’, ‘physical_resource_id’: ‘cloudformation2-CFTestSg-16UQ4CYQ57O9F’, ‘resource_type’: ‘AWS::EC2::SecurityGroup’, ‘status’: ‘UPDATE_COMPLETE’, ‘status_reason’: None}] |
Autores
- James S. Martin (@jsmartin)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)