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: из 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 Bundle читается со стороны модуля и может потребоваться явно скопировать его с контроллера, если он не запущен локально. | ||
| 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_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, сделанного во время выполнения плейбука. Также может использоваться переменная среды 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=наличие, стек будет создан. Если state=наличие и стек существует, а шаблон изменен, он будет обновлен. Если state=отсутствие, стек будет удален. | |
| tags словарь | Словарь тегов для присвоения стеку и его ресурсам во время создания стека. Можно обновить позже, при обновлении тегов удаляются предыдущие записи. | ||
| шаблон путь | Локальный путь шаблона CloudFormation. Должен быть полным путем к файлу, относительно рабочей директории. При использовании ролей он может выглядеть так: roles/cloudformation/files/cloudformation-example.json. Если state=present и стека ещё нет, необходимо указать шаблон, тело_шаблона или url_шаблона (только один из них). Если state=present, стек существует, и ни шаблон, ни тело_шаблона, ни url_шаблона не указаны, будет повторно использован предыдущий шаблон. | ||
| тело_шаблона строка | Тело шаблона. Используйте для передачи фактического тела шаблона CloudFormation. Если state=present и стека ещё нет, необходимо указать шаблон, тело_шаблона или url_шаблона (только один из них). Если state=present, стек существует, и ни шаблон, ни тело_шаблона, ни url_шаблона не указаны, будет повторно использован предыдущий шаблон. | ||
| url_шаблона строка | Расположение файла, содержащего тело шаблона. URL должен указывать на шаблон (максимальный размер 307 200 байт), расположенный в ведре S3 в той же области, что и стек. Если state=present и стека ещё нет, необходимо указать шаблон, тело_шаблона или url_шаблона (только один из них). Если state=present, стек существует, и ни шаблон, ни тело_шаблона, ни url_шаблона не указаны, будет повторно использован предыдущий шаблон. | ||
| validate_certs булево |
| Если установлено в "no", сертификаты SSL не будут проверены для версий boto >= 2.6.0. | |
| ждать булево |
| Дожидаться завершения операции со стеком. Это включает ожидание, пока экземпляры стека достигнут состояния UPDATE_COMPLETE. Если не дожидаться, этот модуль не будет уведомлять о сбоях операций со стеком, так как не будет ожидать их завершения. | |
| wait_timeout целое число | По умолчанию: 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."}], 'статус': 'НЕУДАЧНО'}] |
| экземпляры_стеков список / элементы=строка | state == present | Экземпляры стеков 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', 'статус': 'УСТЕРЕВШЕЕ', 'причина_статуса': 'Отменено, так как предел по толерантности ошибок превышен'}] |
| набор_стеков словарь | state == present | Факты о развернутом наборе стеков, его параметрах и тегах Пример: {'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 Тип: "AWS::S3::Bucket"\n Свойства: {}\n другие:\n Тип: "AWS::SNS::Topic"\n Свойства: {}\n'} |
Авторы
- Ryan Scott Brown (@ryansb)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/aws/cloudformation_stack_set_module.html