community.aws.cloudformation_stack_set – Управление группами стеков CloudFormation
Примечание
Этот плагин входит в коллекцию community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Для использования в плейбуке укажите: community.aws.cloudformation_stack_set.
Введено в версии 1.0.0: of community.aws
Обзор
- Запуск/обновление/удаление наборов стеков AWS CloudFormation.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- boto
- boto3>=1.6
- botocore>=1.10.26
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| accounts список / элементы=строка | Список AWS-аккаунтов, в которых необходимо создать экземпляры стеков CloudFormation. Для создания набора стеков необходимо указать как минимум одну область. При обновлениях, если указано меньше областей, будут обновлены только указанные экземпляры стеков. | ||
| administration_role_arn строка | ARN роли администрирования, то есть роли, которую наборы стеков CloudFormation используют для принятия ролей в ваших дочерних аккаунтах. По умолчанию это arn:aws:iam::{{ account ID }}:role/AWSCloudFormationStackSetAdministrationRole, где {{ account ID }} заменяется номером учетной записи текущей роли IAM/пользователя/STS-кредитов.Псевдонимы: admin_role_arn, admin_role, administration_role | ||
| aws_access_key строка | AWS ключ доступа. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Если параметр profile задан, этот параметр игнорируется. Одновременное использование параметров aws_access_key и profile устарело и параметры будут взаимоисключающими после 2022-06-01. Псевдонимы: ec2_access_key, access_key | ||
| aws_ca_bundle путь | Расположение файла CA-сертификатов для проверки SSL-сертификатов. Используется только для модулей на основе boto3. Примечание: CA-сертификаты считываются со стороны модуля и могут потребоваться явное копирование с контроллера, если модуль не запущен локально. | ||
| aws_config словарь | Словарь для изменения конфигурации botocore. Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Для модулей boto используется только ключ 'user_agent'. Дополнительную информацию о конфигурации boto можно найти по адресу http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto. | ||
| aws_secret_key строка | AWS секретный ключ. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Если параметр profile задан, этот параметр игнорируется. Одновременное использование параметров aws_secret_key и profile устарело и параметры будут взаимоисключающими после 2022-06-01. Псевдонимы: ec2_secret_key, secret_key | ||
| capabilities список / элементы=строка |
| Разрешения позволяют стекам создавать и изменять ресурсы IAM, которые могут включать добавление пользователей или ролей. В настоящее время доступны только значения 'CAPABILITY_IAM' и 'CAPABILITY_NAMED_IAM'. Можно указать одно или оба. Для следующих ресурсов требуется указать один или оба из этих параметров: AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::InstanceProfile, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, AWS::IAM::UserToGroupAddition | |
| debug_botocore_endpoint_logs булево |
| Используйте логирование botocore.endpoint для анализа уникальных (а не общих) API-вызовов «resource:action», сделанных во время задачи, выводя набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, сделанного во время выполнения playbook. Также можно использовать переменную окружения ANSIBLE_DEBUG_BOTOCORE_LOGS. | |
| description строка | Описание того, что создаёт этот набор стеков. | ||
| ec2_url строка | URL для подключения к EC2 или вашей облачной среде Eucalyptus (по умолчанию модуль будет использовать EC2-эндпоинты). Игнорируется для модулей, где требуется область. Должен быть указан для всех других модулей, если область не используется. Если не задан, используется значение переменной окружения EC2_URL, если она есть. Псевдонимы: aws_endpoint_url, endpoint_url | ||
| execution_role_name строка | ARN роли выполнения, то есть роли, которую наборы стеков CloudFormation принимают в ваших дочерних аккаунтах. НЕ ДОЛЖНО быть ARN, а роли должны существовать в каждом указанном дочернем аккаунте. Используемое имя роли по умолчанию — AWSCloudFormationStackSetExecutionRole
Псевдонимы: exec_role_name, exec_role, execution_role | ||
| failure_tolerance словарь | Настройки для изменения того, что считается «неудачей» при выполнении обновлений экземпляров стеков и сколько их выполнять одновременно. | ||
| fail_count целое число | Количество аккаунтов в каждой области, для которых это действие может завершиться неудачей, прежде чем CloudFormation остановит операцию в этой области. Необходимо указать либо fail_count, либо fail_percentage. | ||
| fail_percentage целое число | Процент аккаунтов в каждой области, для которых это действие может завершиться неудачей, прежде чем CloudFormation остановит операцию в этой области. Необходимо указать либо fail_count, либо fail_percentage. | ||
| parallel_count целое число | Максимальное количество аккаунтов, в которых можно выполнить это действие одновременно.
parallel_count может быть не более чем на единицу больше, чем fail_count. Необходимо указать либо parallel_count, либо parallel_percentage. Обратите внимание, что это значение позволяет указать максимум для операций. Для крупных развертываний в определенных обстоятельствах фактическое значение может быть меньше. | ||
| parallel_percentage целое число | Максимальный процент аккаунтов, в которых можно выполнить это действие одновременно. Необходимо указать либо parallel_count, либо parallel_percentage. Обратите внимание, что это значение позволяет указать максимум для операций. Для крупных развертываний в определенных обстоятельствах фактическое значение может быть меньше. | ||
| name строка / обязательно | Имя набора стеков CloudFormation. | ||
| parameters словарь | Значение по умолчанию: {} | Список словарей всех переменных шаблона для стека. Значение может быть строкой или словарем. Словарь может использоваться для задания дополнительных атрибутов параметров шаблона, таких как UsePreviousValue (см. пример). | |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. Использование profile переопределит aws_access_key, aws_secret_key и security_token, а поддержка одновременного использования этих параметров с profile устарела.
aws_access_key, aws_secret_key и security_token будут взаимоисключающими с profile после 2022-06-01. Псевдонимы: aws_profile | ||
| purge_stacks булево |
| Применимо только при state=absent. Определяет, следует ли также удалять экземпляры стеков при удалении набора стеков. По умолчанию экземпляры удаляются. Чтобы сохранить стеки при удалении набора стеков, установите purge_stacks=false. | |
| region строка | AWS-область для использования. Если не указана, используется значение переменной окружения AWS_REGION или EC2_REGION, если таковая есть. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
Псевдонимы: aws_region, ec2_region | ||
| regions список / элементы=строка | Список AWS-областей для создания экземпляров стека. Параметр region выбирает, где создаётся набор стеков, а regions задаёт область для экземпляров стеков. Для создания набора стеков необходимо указать как минимум одну область. При обновлениях, если указано меньше областей, будут обновлены только указанные экземпляры стеков. | ||
| security_token строка | AWS STS-токен безопасности. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если параметр profile задан, этот параметр игнорируется. Одновременное использование параметров security_token и profile устарело и параметры будут взаимоисключающими после 2022-06-01. Псевдонимы: aws_security_token, access_token | ||
| state строка |
| Если state=present, стек будет создан. Если state=present и если стек существует, а шаблон изменён, он будет обновлён. Если state=absent, стек будет удалён. | |
| tags словарь | Словарь тегов, которые необходимо связать со стеком и его ресурсами во время создания стека. Можно обновить позже, обновление тегов удаляет предыдущие записи. | ||
| шаблон путь | Локальный путь шаблона CloudFormation. Это должен быть полный путь к файлу, относительно рабочей директории. При использовании ролей, это может выглядеть так roles/cloudformation/files/cloudformation-example.json. Если состояние=наличие и стека ещё нет, необходимо указать шаблон, тело_шаблона или url_шаблона (но только один из них). Если состояние=наличие, стек существует, и ни шаблон, ни тело_шаблона, ни url_шаблона не указаны, будет повторно использован предыдущий шаблон. | ||
| тело_шаблона строка | Тело шаблона. Используйте для передачи фактического тела шаблона CloudFormation. Если состояние=наличие и стека ещё нет, необходимо указать шаблон, тело_шаблона или url_шаблона (но только один из них). Если состояние=наличие, стек существует, и ни шаблон, ни тело_шаблона, ни url_шаблона не указаны, будет повторно использован предыдущий шаблон. | ||
| url_шаблона строка | Расположение файла, содержащего тело шаблона. URL должен указывать на шаблон (максимальный размер 307 200 байт), расположенный в ведре S3 в той же области, что и стек. Если состояние=наличие и стека ещё нет, необходимо указать шаблон, тело_шаблона или url_шаблона (но только один из них). Если состояние=наличие, стек существует, и ни шаблон, ни тело_шаблона, ни url_шаблона не указаны, будет повторно использован предыдущий шаблон. | ||
| проверять_сертификаты логическое |
| Если установлено в "нет", сертификаты SSL не будут проверяться для версий boto >= 2.6.0. | |
| ожидание логическое |
| Ожидать завершения операции стека. Это включает ожидание, пока экземпляры стека достигнут состояния UPDATE_COMPLETE. Если вы не хотите ждать, этот модуль не будет уведомлять о сбоях операций стека, так как не будет ждать их завершения. | |
| время_ожидания целое | По умолчанию: 900 | Время ожидания (в секундах) завершения операций создания/обновления/удаления стеков. | |
Примечания
Примечание
- Для создания отдельного стека, используйте модуль amazon.aws.cloudformation.
- Если параметры не заданы в модуле, следующие переменные окружения могут использоваться в порядке убывания приоритета
AWS_URLилиEC2_URL,AWS_PROFILEилиAWS_DEFAULT_PROFILE,AWS_ACCESS_KEY_IDилиAWS_ACCESS_KEYилиEC2_ACCESS_KEY,AWS_SECRET_ACCESS_KEYилиAWS_SECRET_KEYилиEC2_SECRET_KEY,AWS_SECURITY_TOKENилиEC2_SECURITY_TOKEN,AWS_REGIONилиEC2_REGION,AWS_CA_BUNDLE. - Ansible использует конфигурационный файл boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html.
-
AWS_REGIONилиEC2_REGIONможно использовать для указания региона AWS, когда это необходимо, но это также можно настроить в конфигурационном файле boto
Примеры
- name: Create a stack set with instances in two accounts
community.aws.cloudformation_stack_set:
name: my-stack
description: Test stack in two accounts
state: present
template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template
accounts: [1234567890, 2345678901]
regions:
- us-east-1
- name: on subsequent calls, templates are optional but parameters and tags can be altered
community.aws.cloudformation_stack_set:
name: my-stack
state: present
parameters:
InstanceName: my_stacked_instance
tags:
foo: bar
test: stack
accounts: [1234567890, 2345678901]
regions:
- us-east-1
- name: The same type of update, but wait for the update to complete in all stacks
community.aws.cloudformation_stack_set:
name: my-stack
state: present
wait: true
parameters:
InstanceName: my_restacked_instance
tags:
foo: bar
test: stack
accounts: [1234567890, 2345678901]
regions:
- us-east-1
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое | Описание |
|---|---|---|
| операции список / элементы=строка | всегда | Все операции, инициированные этим запуском модуля cloudformation_stack_set Пример: [{'действие': 'СОЗДАТЬ', 'административный_роль_arn': 'arn:aws:iam::1234567890:role/AWSCloudFormationStackSetAdministrationRole', 'время_создания': '2018-06-18T17:40:46.372000+00:00', 'время_завершения': '2018-06-18T17:41:24.560000+00:00', 'имя_роли_исполнения': 'AWSCloudFormationStackSetExecutionRole', 'id_операции': 'Ansible-StackInstance-Create-0ff2af5b-251d-4fdb-8b89-1ee444eba8b8', 'предпочтения_операции': {'порядок_регионов': ['us-east-1', 'us-east-2']}, 'id_набора_стеков': 'TestStackPrime:19f3f684-aae9-4e67-ba36-e09f92cf5929', 'статус': 'НЕУДАЧНО'}] |
| журнал_операций список / элементы=строка | всегда | Последние события в журнале событий CloudFormation. В некоторых случаях это может быть из предыдущего запуска. Пример: [{'действие': 'СОЗДАТЬ', 'время_создания': '2018-06-18T17:40:46.372000+00:00', 'время_завершения': '2018-06-18T17:41:24.560000+00:00', 'id_операции': 'Ansible-StackInstance-Create-0ff2af5b-251d-4fdb-8b89-1ee444eba8b8', 'экземпляры_стеков': [{'аккаунт': '1234567890', 'регион': 'us-east-1', 'id_набора_стеков': 'TestStackPrime:19f3f684-aae9-4e67-ba36-e09f92cf5929', 'статус': 'УСТАРЕЛ', 'причина_статуса': "Учётная запись 1234567890 должна иметь роль 'AWSCloudFormationStackSetAdministrationRole' с отношением доверия к службе CloudFormation."}], 'статус': 'НЕУДАЧНО'}] |
| экземпляры_стеков список / элементы=строка | состояние == наличие | Экземпляры стеков CloudFormation, которые являются членами этого набора стеков. Также будет включать их регион и идентификатор учётной записи. Пример: [{'аккаунт': '1234567890', 'регион': 'us-east-1', 'id_набора_стеков': 'TestStackPrime:19f3f684-aae9-4e67-ba36-e09f92cf5929', 'статус': 'УСТАРЕЛ', 'причина_статуса': "Учётная запись 1234567890 должна иметь роль 'AWSCloudFormationStackSetAdministrationRole' с отношением доверия к службе CloudFormation.\n"}, {'аккаунт': '1234567890', 'регион': 'us-east-2', 'id_набора_стеков': 'TestStackPrime:19f3f684-aae9-4e67-ba36-e09f92cf5929', 'статус': 'УСТАРЕЛ', 'причина_статуса': 'Отменено, так как предел переносимости ошибок превышен'}] |
| набор_стеков словарь | состояние == наличие | Факты о текущем развернутом наборе стеков, его параметрах и тегах Пример: {'административный_роль_arn': 'arn:aws:iam::1234567890:role/AWSCloudFormationStackSetAdministrationRole', 'возможности': [], 'описание': 'тестовый стек PRIME', 'имя_роли_исполнения': 'AWSCloudFormationStackSetExecutionRole', 'параметры': [], 'arn_набора_стеков': 'arn:aws:cloudformation:us-east-1:1234567890:stackset/TestStackPrime:19f3f684-aae9-467-ba36-e09f92cf5929', 'id_набора_стеков': 'TestStackPrime:19f3f684-aae9-4e67-ba36-e09f92cf5929', 'название_набора_стеков': 'TestStackPrime', 'статус': 'АКТИВНО', 'теги': {'Некоторые': 'Вещи', 'другое': 'другое'}, 'тело_шаблона': 'AWSTemplateFormatVersion: "2010-09-09"\nParameters: {}\nResources:\n Bukkit:\n Type: "AWS::S3::Bucket"\n Properties: {}\n other:\n Type: "AWS::SNS::Topic"\n Properties: {}\n'} |
Авторы
- Ryan Scott Brown (@ryansb)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/aws/cloudformation_stack_set_module.html