Модуль amazon.aws.cloudformation — создание или удаление стека AWS CloudFormation
Примечание
Этот модуль входит в коллекцию amazon.aws (версия 11.3.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install amazon.aws. Для использования этого модуля требуются дополнительные компоненты; подробную информацию см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: amazon.aws.cloudformation.
Добавлено в amazon.aws 1.0.0
Краткое описание
- Создаёт или обновляет стек AWS CloudFormation и ожидает завершения операции.
Требования
Следующие требования необходимы на хосте, который выполняет этот модуль.
- python >= 3.6
- boto3 >= 1.35.0
- botocore >= 1.35.0
Параметры
Параметр | Комментарии |
|---|---|
access_key псевдонимы: aws_access_key_id, aws_access_key string | Идентификатор ключа доступа AWS. Дополнительную информацию о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные среды Параметры aws_access_key и profile являются взаимоисключающими. Псевдоним aws_access_key_id добавлен в выпуске 5.1.0 для единообразия с AWS SDK botocore. |
aws_ca_bundle path | Путь к пакету сертификатов CA, используемому для проверки SSL-сертификатов. Также можно использовать переменную среды |
aws_config dictionary | Словарь для изменения конфигурации botocore. Параметры описаны в документации AWS: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
backoff_delay integer | Количество секунд ожидания перед следующей повторной попыткой. По умолчанию: |
backoff_max_delay integer | Максимальное время ожидания между повторными попытками. По умолчанию: |
backoff_retries integer | Количество повторных попыток выполнения операции. Механизм ограничения частоты запросов API AWS приводит к сбою модуля CloudFormation, поэтому операцию необходимо повторить несколько раз. По умолчанию: |
capabilities list / elements=string | Укажите возможности, используемые шаблоном стека. Допустимые значения: По умолчанию: |
changeset_name string | Имя, присваиваемое набору изменений при его создании. Используется только при По умолчанию на основе входных параметров создаётся имя с префиксом Ansible-STACKNAME. Дополнительную информацию см. в документации AWS о наборах изменений: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html |
create_changeset boolean | Если стек уже существует, создаёт набор изменений вместо непосредственного применения изменений. См. документацию AWS о наборах изменений: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html. ПРЕДУПРЕЖДЕНИЕ: если стек не существует, он будет создан без набора изменений. Если Варианты:
|
create_timeout integer | Время (в минутах), по истечении которого статус стека станет |
debug_botocore_endpoint_logs boolean | Использует регистратор Также можно использовать переменную среды Варианты:
|
disable_rollback boolean | Если создание стека завершится с ошибкой, откат приведёт к удалению стека. Варианты:
|
endpoint_url псевдонимы: aws_endpoint_url string | URL для подключения вместо конечных точек AWS по умолчанию. Хотя этот параметр можно использовать для подключения к другим сервисам, совместимым с AWS, коллекции amazon.aws и community.aws тестируются только с AWS. Также можно использовать переменную среды |
events_limit integer | Максимальное количество событий CloudFormation, получаемых из стека при его создании или обновлении. По умолчанию: |
notification_arns string | Список ARN тем Simple Notification Service (SNS), разделённых запятыми, для публикации событий, связанных со стеком. |
on_create_failure string | Действие при сбое создания стека. Несовместимо с параметром Варианты:
|
profile псевдонимы: aws_profile string | Именованный профиль AWS для аутентификации. Дополнительную информацию об именованных профилях см. в документации AWS: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Также можно использовать переменную среды Параметр profile взаимоисключающий с параметрами aws_access_key, aws_secret_key и session_token. |
region псевдонимы: aws_region string | Регион AWS для использования. Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется. Также можно использовать переменную среды Дополнительную информацию см. в документации Amazon AWS: http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. |
role_arn string | Роль, которую AWS CloudFormation использует для создания стека. См. документацию AWS CloudFormation о сервисных ролях: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html |
secret_key псевдонимы: aws_secret_access_key, aws_secret_key string | Секретный ключ доступа AWS. Дополнительную информацию о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные среды Параметры secret_key и profile являются взаимоисключающими. Псевдоним aws_secret_access_key добавлен в выпуске 5.1.0 для единообразия с AWS SDK botocore. |
session_token псевдонимы: aws_session_token string | Токен сеанса AWS STS для использования с временными учётными данными. Дополнительную информацию о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменную среды Параметры session_token и profile являются взаимоисключающими. |
stack_name string / обязательный | Имя стека CloudFormation. |
stack_policy string | Путь к файлу с политикой стека CloudFormation. После установки политику нельзя удалить, но можно изменить. Например, разрешить все обновления: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html#d0e9051 |
stack_policy_body json добавлено в amazon.aws 1.5.0 | Политика стека CloudFormation в формате JSON. После установки политику нельзя удалить, но можно изменить. Например, разрешить все обновления: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html#d0e9051 |
stack_policy_on_update_body json добавлено в amazon.aws 1.5.0 | Тело политики стека CloudFormation, применяемой только во время этого обновления. |
state string | Если Если Если Варианты:
|
tags dictionary | Словарь тегов, связываемых со стеком и его ресурсами при создании стека. Теги можно обновить позднее; при обновлении тегов предыдущие записи удаляются. |
template path | Локальный путь к шаблону CloudFormation. Это должен быть полный путь к файлу относительно рабочего каталога. При использовании ролей путь может выглядеть так: Если Если Параметр |
template_body string | Тело шаблона. Используйте этот параметр, чтобы передать фактическое тело шаблона CloudFormation. Если Если |
template_parameters dictionary | Список хешей со всеми переменными шаблона для стека. Значение может быть строкой или словарём. Словарь можно использовать для задания дополнительных атрибутов параметров шаблона, например UsePreviousValue (см. пример). По умолчанию: |
template_url string | Расположение файла с телом шаблона. URL должен указывать на шаблон (максимальный размер — 307 200 байт), расположенный в корзине S3 в том же регионе, что и стек. Если Если |
termination_protection boolean | Включить или отключить защиту стека от удаления. Варианты:
|
validate_certs boolean | Если установлено значение Настоятельно не рекомендуется устанавливать validate_certs=false; вместо этого рассмотрите возможность задать параметр aws_ca_bundle. Варианты:
|
Примечания
Примечание
- Внимание: Для модулей переменные среды и файлы конфигурации считываются в контексте «хоста» Ansible, а не в контексте «контроллера». Поэтому может потребоваться явно скопировать файлы на «хост». Для плагинов поиска и подключения переменные среды и файлы конфигурации считываются в контексте «контроллера» Ansible, а не в контексте «хоста».
- Используемый Ansible пакет AWS SDK (boto3) также может считывать значения учётных данных и других параметров по умолчанию, например региона, из файлов конфигурации в контексте «хоста» Ansible (обычно
~/.aws/credentials). Дополнительную информацию см. по адресу https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.
Примеры
- name: create a cloudformation stack
amazon.aws.cloudformation:
stack_name: "ansible-cloudformation"
state: "present"
region: "us-east-1"
disable_rollback: true
# The template parameter has been deprecated, use template_body with lookup instead.
# template: "files/cloudformation-example.json"
template_body: "{{ lookup('file', '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
# The template parameter has been deprecated, use template_body with lookup instead.
# template: "roles/cloudformation/files/cloudformation-example.json"
template_body: "{{ lookup('file', '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:123456789012: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: true
# 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
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже приведены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
change_set_id string | Идентификатор набора изменений стека, созданного при его создании. Возвращается: когда Пример: |
events list / elements=string | Последние события в журнале событий CloudFormation. В некоторых случаях это могут быть события из предыдущего запуска. Возвращается: всегда Пример: |
log list / elements=string | Журналы отладки. Полезны при внесении изменений или поиске ошибки. Возвращается: всегда Пример: |
stack_outputs dictionary | Словарь «ключ:значение» со всеми выходными данными стека, определёнными в данный момент. Если у стека нет выходных данных, возвращается пустой словарь. Возвращается: когда Пример: |
stack_resources list / elements=dictionary | Ресурсы стека AWS и их состояние. Список словарей, по одному словарю на ресурс. Возвращается: когда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/amazon/aws/cloudformation_module.html