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 |
| debug_botocore_endpoint_logs логический тип добавлено в 2.8 |
| Используйте logger botocore.endpoint для анализа уникальных (а не общих) API-вызовов "ресурс:действие", сделанных во время задачи, выводия список в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, сделанного во время выполнения playbook. Также может быть использована переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS. |
| 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 строка | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| purge_stacks логический тип |
| Применимо только при 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 строка | AWS STS-токен безопасности. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Псевдонимы: access_token | |
| state - |
| Если state — "наличие", стек будет создан. Если state — "наличие", и если стек существует, а шаблон изменён, он будет обновлён. Если state — "отсутствие", стек будет удалён. |
| tags - | Словарь тегов для связывания со стеком и его ресурсами во время создания стека. Может быть обновлён позже, обновление тегов удаляет предыдущие записи. | |
| template - | Локальный путь шаблона cloudformation. Это должен быть полный путь к файлу, относительно рабочей директории. При использовании ролей он может выглядеть как "roles/cloudformation/files/cloudformation-example.json". Если 'state' — 'наличие' и стек ещё не существует, необходимо указать 'template', 'template_body' или 'template_url' (только один из них). Если 'state' — 'наличие', стек существует, и ни 'template', ни 'template_body', ни 'template_url' не указаны, предыдущий шаблон будет повторно использован. | |
| template_body - | Тело шаблона. Используйте его для передачи фактического тела шаблона Cloudformation. Если 'state' — 'наличие' и стек ещё не существует, необходимо указать 'template', 'template_body' или 'template_url' (только один из них). Если 'state' — 'наличие', стек существует, и ни 'template', ни 'template_body', ни 'template_url' не указаны, предыдущий шаблон будет повторно использован. | |
| template_url - | Расположение файла, содержащего тело шаблона. URL должен указывать на шаблон (максимальный размер 307 200 байт), расположенный в ведре S3 в том же регионе, что и стек. Если 'state' — 'наличие' и стек ещё не существует, необходимо указать 'template', 'template_body' или 'template_url' (только один из них). Если 'state' — 'наличие', стек существует, и ни 'template', ни 'template_body', ни 'template_url' не указаны, предыдущий шаблон будет повторно использован. | |
| validate_certs логический тип |
| При установке в "нет", SSL-сертификаты не будут проверены для версий boto >= 2.6.0. |
| wait логический тип |
| Ожидать завершения операции со стеком. Это включает ожидание, пока экземпляры стека не достигнут статуса 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': 'Thing', 'an': 'other'}, '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. [сообщество]
Авторы
- 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.8/modules/cloudformation_stack_set_module.html