cloudformation_stack_set – Управление группами стеков CloudFormation
Новая версия с 2.7.
Описание
- Запуск/обновление/удаление наборов стеков AWS CloudFormation
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- boto
- boto3>=1.6
- botocore>=1.10.26
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| accounts - | Список AWS-аккаунтов, в которых необходимо создать экземпляры стеков CloudFormation. Для создания набора стеков необходимо указать хотя бы один регион. При обновлении, если указано меньше регионов, будут обновлены только указанные экземпляры стеков. | |
| administration_role_arn - | ARN роли администратора, то есть роли, которую наборы стеков CloudFormation используют для принятия ролей в ваших дочерних аккаунтах. По умолчанию это arn:aws:iam::{{ идентификатор_аккаунта }}:role/AWSCloudFormationStackSetAdministrationRole, где {{ идентификатор_аккаунта }} заменяется номером аккаунта текущей роли IAM/пользователя/кредитов STS. Псевдонимы: admin_role_arn, admin_role, administration_role | |
| aws_access_key - | AWS ключ доступа. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Псевдонимы: ec2_access_key, access_key | |
| aws_secret_key - | AWS секретный ключ. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Псевдонимы: 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 |
| description - | Описание того, что создает этот набор стеков. | |
| ec2_url - | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если она существует. | |
| execution_role_name - | ARN роли выполнения, то есть роли, которую наборы стеков CloudFormation принимают в ваших дочерних аккаунтах. НЕ должен быть ARN, и роли должны существовать в каждом указанном дочернем аккаунте. Используется имя роли выполнения по умолчанию: AWSCloudFormationStackSetExecutionRole
Псевдонимы: exec_role_name, exec_role, execution_role | |
| failure_tolerance - | Настройки для изменения того, что считается "ошибкой" при выполнении обновлений экземпляров стеков и сколько из них выполнять одновременно. | |
| name - / обязательно | Имя набора стеков CloudFormation. | |
| parameters - | Значение по умолчанию: {} | Список словарей всех переменных шаблона для стека. Значение может быть строкой или словарем. Словарь может использоваться для установки дополнительных атрибутов параметров шаблона, таких как UsePreviousValue (см. пример). |
| profile - добавлен в 1.6 | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| purge_stacks boolean |
| Применимо только при state=absent. Устанавливает, нужно ли удалять экземпляры стеков при удалении набора стеков. По умолчанию, экземпляры будут удалены. Установите 'нет' или '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 - добавлен в 1.6 | AWS STS токен безопасности. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Псевдонимы: access_token | |
| state - |
| Если state равно "present", стек будет создан. Если state равно "present", а стек существует и шаблон изменен, он будет обновлен. Если state равно "absent", стек будет удален. |
| tags - | Словарь тегов для ассоциации со стеком и его ресурсами во время создания стека. Могут быть обновлены позже, обновление тегов удаляет предыдущие записи. | |
| template - | Локальный путь шаблона cloudformation. Должен быть полным путем к файлу, относительно рабочей директории. При использовании ролей может выглядеть как "roles/cloudformation/files/cloudformation-example.json". Если 'state' равен 'present' и стек еще не существует, необходимо указать 'template', 'template_body' или 'template_url' (но только один из них). Если 'state' равен 'present', стек существует, и ни 'template', 'template_body', ни 'template_url' не указаны, будет использован предыдущий шаблон. | |
| template_body - | Тело шаблона. Используйте это для передачи фактического тела шаблона Cloudformation. Если 'state' равен 'present' и стек еще не существует, необходимо указать 'template', 'template_body' или 'template_url' (но только один из них). Если 'state' равен 'present', стек существует, и ни 'template', 'template_body', ни 'template_url' не указаны, будет использован предыдущий шаблон. | |
| template_url - | Расположение файла, содержащего тело шаблона. URL должен указывать на шаблон (максимальный размер 307 200 байт) в ведре S3 в том же регионе, что и стек. Если 'state' равен 'present' и стек еще не существует, необходимо указать 'template', 'template_body' или 'template_url' (но только один из них). Если 'state' равен 'present', стек существует, и ни 'template', 'template_body', ни 'template_url' не указаны, будет использован предыдущий шаблон. | |
| validate_certs boolean добавлен в 1.5 |
| Если установлено "нет", SSL сертификаты не будут проверены для версий boto >= 2.6.0. |
| wait boolean |
| Ожидать завершения операции со стеком. Это включает ожидание, пока экземпляры стеков достигнут состояния UPDATE_COMPLETE. Если вы выбираете не ждать, этот модуль не будет сообщать об ошибках операций со стеками, потому что не будет ждать их завершения. |
| wait_timeout - | Значение по умолчанию: 900 | Сколько времени ждать (в секундах) завершения операций создания/обновления/удаления стеков. |
Примечания
Примечание
- Для создания отдельного стека вам нужен модуль cloudformation.
- Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета
AWS_URLилиEC2_URL,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 - 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
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
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
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
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие — поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| operations список | всегда | Все операции, инициированные этим запуском модуля cloudformation_stack_set Пример: [{'action': 'CREATE', 'administration_role_arn': 'arn:aws:iam::1234567890:role/AWSCloudFormationStackSetAdministrationRole', 'creation_timestamp': '2018-06-18T17:40:46.372000+00:00', 'end_timestamp': '2018-06-18T17:41:24.560000+00:00', 'execution_role_name': 'AWSCloudFormationStackSetExecutionRole', 'operation_id': 'Ansible-StackInstance-Create-0ff2af5b-251d-4fdb-8b89-1ee444eba8b8', 'operation_preferences': {'region_order': ['us-east-1', 'us-east-2']}, 'stack_set_id': 'TestStackPrime:19f3f684-aae9-4e67-ba36-e09f92cf5929', 'status': 'FAILED'}] |
| operations_log список | всегда | Последние события в журнале событий CloudFormation. В некоторых случаях это может быть из предыдущего запуска. Пример: [{'action': 'CREATE', 'creation_timestamp': '2018-06-18T17:40:46.372000+00:00', 'end_timestamp': '2018-06-18T17:41:24.560000+00:00', 'operation_id': 'Ansible-StackInstance-Create-0ff2af5b-251d-4fdb-8b89-1ee444eba8b8', 'status': 'FAILED', 'stack_instances': [{'account': '1234567890', 'region': 'us-east-1', 'stack_set_id': 'TestStackPrime:19f3f684-aae9-4e67-ba36-e09f92cf5929', 'status': 'OUTDATED', 'status_reason': "Учетная запись 1234567890 должна иметь роль 'AWSCloudFormationStackSetAdministrationRole' с соглашением о доверии к службе CloudFormation."}]}] |
| stack_instances список | state == present | Экземпляры стека CloudFormation, которые являются членами этого набора стеков. Это также будет включать их регион и идентификатор учетной записи. Пример: [{'account': '1234567890', 'region': 'us-east-1', 'stack_set_id': 'TestStackPrime:19f3f684-aae9-4e67-ba36-e09f92cf5929', 'status': 'OUTDATED', 'status_reason': "Учетная запись 1234567890 должна иметь роль 'AWSCloudFormationStackSetAdministrationRole' с соглашением о доверии к службе CloudFormation.\n"}, {'account': '1234567890', 'region': 'us-east-2', 'stack_set_id': 'TestStackPrime:19f3f684-aae9-4e67-ba36-e09f92cf5929', 'status': 'OUTDATED', 'status_reason': 'Отменено, так как предел для допустимых сбоев превышен'}] |
| stack_set словарь | state == present | Факты о текущем развернутом наборе стеков, его параметрах и тегах Пример: {'administration_role_arn': 'arn:aws:iam::1234567890:role/AWSCloudFormationStackSetAdministrationRole', 'capabilities': [], 'description': 'тестовый стек PRIME', 'execution_role_name': 'AWSCloudFormationStackSetExecutionRole', 'parameters': [], 'stack_set_arn': 'arn:aws:cloudformation:us-east-1:1234567890:stackset/TestStackPrime:19f3f684-aae9-467-ba36-e09f92cf5929', 'stack_set_id': 'TestStackPrime:19f3f684-aae9-4e67-ba36-e09f92cf5929', 'stack_set_name': 'TestStackPrime', 'status': 'ACTIVE', 'tags': {'Some': 'Что-то', 'an': 'другое'}, 'template_body': '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'} |
Статус
- Данный модуль не гарантирует обратной совместимости. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- 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.7/modules/cloudformation_stack_set_module.html