Spec-Zone.ru › Ansible

Модуль 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_ID или AWS_ACCESS_KEY в порядке убывания приоритета.

Параметры aws_access_key и profile являются взаимоисключающими.

Псевдоним aws_access_key_id добавлен в выпуске 5.1.0 для единообразия с AWS SDK botocore.

aws_ca_bundle

path

Путь к пакету сертификатов CA, используемому для проверки SSL-сертификатов.

Также можно использовать переменную среды AWS_CA_BUNDLE.

aws_config

dictionary

Словарь для изменения конфигурации botocore.

Параметры описаны в документации AWS: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.

backoff_delay

integer

Количество секунд ожидания перед следующей повторной попыткой.

По умолчанию: 3

backoff_max_delay

integer

Максимальное время ожидания между повторными попытками.

По умолчанию: 30

backoff_retries

integer

Количество повторных попыток выполнения операции.

Механизм ограничения частоты запросов API AWS приводит к сбою модуля CloudFormation, поэтому операцию необходимо повторить несколько раз.

По умолчанию: 10

capabilities

list / elements=string

Укажите возможности, используемые шаблоном стека.

Допустимые значения: CAPABILITY_IAM, CAPABILITY_NAMED_IAM и CAPABILITY_AUTO_EXPAND.

По умолчанию: ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"]

changeset_name

string

Имя, присваиваемое набору изменений при его создании.

Используется только при create_changeset=true.

По умолчанию на основе входных параметров создаётся имя с префиксом 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.

ПРЕДУПРЕЖДЕНИЕ: если стек не существует, он будет создан без набора изменений. Если state=absent, стек будет немедленно удалён без набора изменений.

Варианты:

  • false ← (по умолчанию)
  • true

create_timeout

integer

Время (в минутах), по истечении которого статус стека станет CREATE_FAILED.

debug_botocore_endpoint_logs

boolean

Использует регистратор botocore.endpoint для анализа уникальных (а не общего числа) вызовов API "resource:action", выполненных во время задачи, и выводит их список в ключ resource_actions результатов задачи. Используйте callback aws_resource_action, чтобы вывести общий список, сформированный в ходе плейбука.

Также можно использовать переменную среды ANSIBLE_DEBUG_BOTOCORE_LOGS.

Варианты:

  • false ← (по умолчанию)
  • true

disable_rollback

boolean

Если создание стека завершится с ошибкой, откат приведёт к удалению стека.

Варианты:

  • false ← (по умолчанию)
  • true

endpoint_url

псевдонимы: aws_endpoint_url

string

URL для подключения вместо конечных точек AWS по умолчанию. Хотя этот параметр можно использовать для подключения к другим сервисам, совместимым с AWS, коллекции amazon.aws и community.aws тестируются только с AWS.

Также можно использовать переменную среды AWS_URL.

events_limit

integer

Максимальное количество событий CloudFormation, получаемых из стека при его создании или обновлении.

По умолчанию: 200

notification_arns

string

Список ARN тем Simple Notification Service (SNS), разделённых запятыми, для публикации событий, связанных со стеком.

on_create_failure

string

Действие при сбое создания стека. Несовместимо с параметром disable_rollback.

Варианты:

  • "DO_NOTHING"
  • "ROLLBACK"
  • "DELETE"

profile

псевдонимы: aws_profile

string

Именованный профиль AWS для аутентификации.

Дополнительную информацию об именованных профилях см. в документации AWS: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html.

Также можно использовать переменную среды AWS_PROFILE.

Параметр profile взаимоисключающий с параметрами aws_access_key, aws_secret_key и session_token.

region

псевдонимы: aws_region

string

Регион AWS для использования.

Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется.

Также можно использовать переменную среды AWS_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.

Также можно использовать переменные среды AWS_SECRET_ACCESS_KEY или AWS_SECRET_KEY в порядке убывания приоритета.

Параметры 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.

Также можно использовать переменную среды AWS_SESSION_TOKEN.

Параметры 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

Если state=present, стек будет создан.

Если state=present и стек существует, а шаблон изменился, стек будет обновлён.

Если state=absent, стек будет удалён.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

tags

dictionary

Словарь тегов, связываемых со стеком и его ресурсами при создании стека.

Теги можно обновить позднее; при обновлении тегов предыдущие записи удаляются.

template

path

Локальный путь к шаблону CloudFormation.

Это должен быть полный путь к файлу относительно рабочего каталога. При использовании ролей путь может выглядеть так: roles/cloudformation/files/cloudformation-example.json.

Если state=present и стек ещё не существует, необходимо указать template, template_body или template_url (но только один из этих параметров).

Если state=present, стек существует, а параметры template, template_body и template_url не указаны, будет повторно использован предыдущий шаблон.

Параметр template объявлен устаревшим и будет удалён в выпуске после 2026-05-01. Рекомендуется использовать template_body с плагином поиска ansible.builtin.template.

template_body

string

Тело шаблона. Используйте этот параметр, чтобы передать фактическое тело шаблона CloudFormation.

Если state=present и стек ещё не существует, необходимо указать template, template_body или template_url (но только один из этих параметров).

Если state=present, стек существует, а параметры template, template_body и template_url не указаны, будет повторно использован предыдущий шаблон.

template_parameters

dictionary

Список хешей со всеми переменными шаблона для стека. Значение может быть строкой или словарём.

Словарь можно использовать для задания дополнительных атрибутов параметров шаблона, например UsePreviousValue (см. пример).

По умолчанию: {}

template_url

string

Расположение файла с телом шаблона. URL должен указывать на шаблон (максимальный размер — 307 200 байт), расположенный в корзине S3 в том же регионе, что и стек.

Если state=present и стек ещё не существует, необходимо указать template, template_body или template_url (но только один из этих параметров).

Если state=present, стек существует, а параметры template, template_body и template_url не указаны, будет повторно использован предыдущий шаблон.

termination_protection

boolean

Включить или отключить защиту стека от удаления.

Варианты:

  • false
  • true

validate_certs

boolean

Если установлено значение false, SSL-сертификаты при обмене данными с API AWS проверяться не будут.

Настоятельно не рекомендуется устанавливать validate_certs=false; вместо этого рассмотрите возможность задать параметр aws_ca_bundle.

Варианты:

  • false
  • true ← (по умолчанию)

Примечания

Примечание

  • Внимание: Для модулей переменные среды и файлы конфигурации считываются в контексте «хоста» 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

Идентификатор набора изменений стека, созданного при его создании.

Возвращается: когда state=present и create_changeset=true.

Пример: "arn:aws:cloudformation:us-east-1:123456789012:changeSet/Ansible-StackName-f4496805bd1b2be824d1e315c6884247ede41eb0"

events

list / elements=string

Последние события в журнале событий CloudFormation. В некоторых случаях это могут быть события из предыдущего запуска.

Возвращается: всегда

Пример: ["StackEvent AWS::CloudFormation::Stack stackname UPDATE_COMPLETE", "StackEvent AWS::CloudFormation::Stack stackname UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"]

log

list / elements=string

Журналы отладки. Полезны при внесении изменений или поиске ошибки.

Возвращается: всегда

Пример: ["updating stack"]

stack_outputs

dictionary

Словарь «ключ:значение» со всеми выходными данными стека, определёнными в данный момент. Если у стека нет выходных данных, возвращается пустой словарь.

Возвращается: когда state=present

Пример: {"MySg": "AnsibleModuleTestYAML-CFTestSg-C8UVS567B6NS"}

stack_resources

list / elements=dictionary

Ресурсы стека AWS и их состояние. Список словарей, по одному словарю на ресурс.

Возвращается: когда state=present

Пример: [{"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": null}]

Авторы

  • James S. Martin (@jsmartin)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API