Spec-Zone.ru › Ansible

Модуль amazon.aws.cloudformation – Создание или удаление стека AWS CloudFormation

Примечание

Этот модуль входит в коллекцию amazon.aws (версия 8.2.1).

Возможно, эта коллекция уже установлена, если вы используете пакет 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.26.0
  • botocore >= 1.29.0
END_OF_DOCUMENT_MARKER

Параметры

Параметр

Комментарии

access_key

псевдонимы: aws_access_key_id, aws_access_key, ec2_access_key

строка

Идентификатор ключа доступа 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 или EC2_ACCESS_KEY в порядке убывания приоритета.

Опции aws_access_key и profile взаимоисключающие.

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

Псевдоним ec2_access_key устарел и будет удален в релизе после 2024-12-01.

Поддержка переменной среды EC2_ACCESS_KEY устарела и будет удалена в релизе после 2024-12-01.

aws_ca_bundle

путь

Расположение пакета CA для проверки сертификатов SSL.

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

aws_config

словарь

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

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

backoff_delay

целое число

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

Значение по умолчанию: 3

...
END_OF_DOCUMENT_MARKER

on_create_failure

string

Действие, которое необходимо выполнить при ошибке создания стека. Несовместимо с параметром disable_rollback.

Варианты:

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

profile

aliases: 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 и security_token.

region

aliases: aws_region, ec2_region

string

Используемый регион AWS.

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

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

Дополнительную информацию см. в документации Amazon AWS: http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region.

Псевдоним ec2_region устарел и будет удален в релизе после 2024-12-01.

Поддержка переменной среды EC2_REGION устарела и будет удалена в релизе после 2024-12-01.

role_arn

string

Роль, которую AWS CloudFormation принимает для создания стека. См. документацию AWS CloudFormation Service Role: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html

secret_key

aliases: aws_secret_access_key, aws_secret_key, ec2_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, или EC2_SECRET_KEY в порядке убывания приоритета.

Параметры secret_key и profile несовместимы.

Псевдоним aws_secret_access_key добавлен в релизе 5.1.0 для соответствия AWS botocore SDK.

Псевдоним ec2_secret_key устарел и будет удален в релизе после 2024-12-01.

Поддержка переменной среды EC2_SECRET_KEY устарела и будет удалена в релизе после 2024-12-01.

session_token

aliases: aws_session_token, security_token, aws_security_token, access_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, AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN в порядке убывания приоритета.

Параметры security_token и profile несовместимы.

Псевдонимы aws_session_token и session_token добавлены в релизе 3.2.0, параметр был переименован из security_token в session_token в релизе 6.0.0.

Псевдонимы security_token, aws_security_token и access_token устарели и будут удалены в релизе после 2024-12-01.

Поддержка переменных среды EC2_SECRET_KEY и AWS_SECURITY_TOKEN устарела и будет удалена в релизе после 2024-12-01.

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

словарь

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

Может быть обновлен позже, обновление тегов удаляет предыдущие записи.

END_OF_DOCUMENT_MARKER

шаблон

путь

Локальный путь к шаблону 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.

тело_шаблона

строка

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

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

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

параметры_шаблона

словарь

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

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

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

url_шаблона

строка

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

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

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

защита_от_прекращения

булево

Включить или выключить защиту от прекращения работы стэка.

Варианты:

  • false
  • true

проверка_сертификатов

булево

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

Указание проверка_сертификатов=false настоятельно не рекомендуется, в качестве альтернативы, рассмотрите возможность установки aws_ca_bundle вместо этого.

Варианты:

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

Примечания

Примечание

  • Внимание: Для модулей переменные среды и файлы конфигурации считываются из контекста Ansible «хост», а не «контроллер». Поэтому файлы могут потребоваться скопировать явно на «хост». Для плагинов поиска и подключения переменные среды и файлы конфигурации считываются из контекста Ansible «контроллер», а не «хост».
  • AWS SDK (boto3), который использует Ansible, также может считывать значения по умолчанию для учетных данных и других параметров, таких как область, из файлов конфигурации в контексте 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

Возвращаемые значения

Общие возвращаемые значения описаны в здесь, следующие — поля, уникальные для этого модуля:

Ключ

Описание

id_набора_изменений

строка

ID набора изменений стэка при создании.

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

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

события

список / элементы=строка

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

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

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

журнал

список / элементы=строка

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

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

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

выходы_стэка

словарь

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

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

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

ресурсы_стэка

список / элементы=словарь

Ресурсы 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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/amazon/aws/cloudformation_module.html

Spec-Zone.ru

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