Spec-Zone.ru › Ansible 2.7

cloudformation – Создание или удаление стека AWS CloudFormation

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус

Описание

  • Запускает или обновляет стек AWS CloudFormation и ожидает его завершения.

Требования

Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.

  • boto
  • boto3
  • botocore>=1.4.57
  • python >= 2.6

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
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
changeset_name
-
добавлен в 2.4
Имя, присваиваемое набору изменений при создании набора изменений, используется только при create_changeset = true. По умолчанию генерируется имя, начинающееся с Ansible-STACKNAME, на основе входных параметров. См. документацию AWS по наборам изменений http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html
create_changeset
-
добавлен в 2.4
По умолчанию:
"нет"
Если стека еще нет, создайте набор изменений вместо непосредственного применения изменений. См. документацию AWS по наборам изменений http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html. ПРЕДУПРЕЖДЕНИЕ: если стека не существует, он будет создан без набора изменений. Если состояние отсутствует, стек будет удален сразу без набора изменений.
create_timeout
-
добавлен в 2.6
По умолчанию:
null
Время (в минутах), которое может пройти, прежде чем состояние стека станет CREATE_FAILED
disable_rollback
boolean
    Варианты:
  • нет ←
  • да
Если стек не сформируется, откат удалит стек
ec2_url
-
URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если она есть.
events_limit
-
добавлен в 2.7
По умолчанию:
200
Максимальное количество событий CloudFormation, которые нужно получить от стека при создании или обновлении.
notification_arns
-
добавлен в 2.0
ARN темы Simple Notification Service (SNS) для публикации событий, связанных со стеком.
profile
-
добавлен в 1.6
Использует профиль boto. Работает только с boto >= 2.24.0.
region
-
AWS регион для использования. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если она есть. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region

псевдонимы: aws_region, ec2_region
role_arn
-
добавлен в 2.3
Роль, которую AWS CloudFormation принимает для создания стека. См. документацию AWS CloudFormation по роли службы http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html
security_token
-
добавлен в 1.6
Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.

псевдонимы: access_token
stack_name
- / обязательно
имя стека cloudformation
stack_policy
-
добавлен в 1.9
путь к политике стека cloudformation. Политика не может быть удалена после размещения, но может быть изменена. (например, [разрешить все обновления](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html#d0e9051)
state
-
    Варианты:
  • present ←
  • absent
Если состояние равно "present", стек будет создан. Если состояние равно "present", стек существует, и шаблон изменился, он будет обновлен. Если состояние равно "absent", стек будет удален.
tags
-
добавлен в 1.4
Словарь тегов для ассоциации со стеком и его ресурсами во время создания стека. Может быть обновлен позже, обновление тегов удаляет предыдущие записи.
template
-
Локальный путь к шаблону cloudformation.
Это должен быть полный путь к файлу, относительно рабочей директории. Если используются роли, это может выглядеть как "roles/cloudformation/files/cloudformation-example.json".
Если 'state' равен 'present' и стек еще не существует, должен быть указан 'template', 'template_body' или 'template_url' (но только один из них). Если 'state' равен 'present', стек существует, и ни 'template', ни 'template_body', ни 'template_url' не указаны, предыдущий шаблон будет повторно использован.
template_body
-
добавлен в 2.5
Тело шаблона. Используйте это для передачи фактического тела шаблона Cloudformation.
Если 'state' равен 'present' и стек еще не существует, должен быть указан 'template', 'template_body' или 'template_url' (но только один из них). Если 'state' равен 'present', стек существует, и ни 'template', ни 'template_body', ни 'template_url' не указаны, предыдущий шаблон будет повторно использован.
template_format
-
добавлен в 2.0
    Варианты:
  • json ←
  • yaml
(устарело) Для локальных шаблонов позволяет указать формат json или yaml. Шаблоны теперь передаются в CloudFormation в сыром виде независимо от формата. Этот параметр игнорируется с Ansible 2.3.
template_parameters
-
По умолчанию:
{}
Список словарей всех переменных шаблона для стека. Значение может быть строкой или словарем.
Словарь может быть использован для установки дополнительных атрибутов параметров шаблона, таких как UsePreviousValue (см. пример).
template_url
-
добавлен в 2.0
Местоположение файла, содержащего тело шаблона. URL должен указывать на шаблон (максимальный размер 307 200 байт), расположенный в ведре S3 в том же регионе, что и стек.
Если 'state' равен 'present' и стек еще не существует, должен быть указан 'template', 'template_body' или 'template_url' (но только один из них). Если 'state' равен 'present', стек существует, и ни 'template', ни 'template_body', ни 'template_url' не указаны, предыдущий шаблон будет повторно использован.
termination_protection
-
добавлен в 2.5
Включить или выключить защиту от удаления стека. Работает только с botocore >= 1.7.18.
validate_certs
boolean
добавлен в 1.5
    Варианты:
  • нет
  • да ←
При установке в "нет", сертификаты SSL не будут проверены для версий boto >= 2.6.0.

Примечания

Примечание

  • Начиная с версии 2.3, мигрировано на boto3 для включения новых функций. Для соответствия существующему поведению, синтаксический разбор YAML выполняется в модуле, а не передается в AWS в виде YAML. Это изменится (на самом деле, это может измениться до выхода версии 2.3).
  • Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета 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 cloudformation stack
  cloudformation:
    stack_name: "ansible-cloudformation"
    state: "present"
    region: "us-east-1"
    disable_rollback: true
    template: "files/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
  cloudformation:
    stack_name: "ansible-cloudformation"
    state: "present"
    region: "us-east-1"
    disable_rollback: true
    template: "roles/cloudformation/files/cloudformation-example.json"
    role_arn: 'arn:aws:iam::123456789012:role/cloudformation-iam-role'

- name: delete a stack
  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
  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
  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.
- 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:000000000000: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
  cloudformation:
    stack_name: my_stack
    state: present
    template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template
    termination_protection: yes

# 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
  cloudformation:
    stack_name: my_stack
    state: present
    template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template
    create_timeout: 5

Значения возврата

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

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

Пример:
['StackEvent AWS::CloudFormation::Stack stackname UPDATE_COMPLETE', 'StackEvent AWS::CloudFormation::Stack stackname UPDATE_COMPLETE_CLEANUP_IN_PROGRESS']
log
список
всегда
Логи отладки. Полезно при модификации или поиске ошибки.

Пример:
['updating stack']
stack_outputs
словарь
state == present
Словарь ключ:значение всех выходных данных стека, которые в настоящее время определены. Если выходных данных стека нет, это пустой словарь.

Пример:
{'MySg': 'AnsibleModuleTestYAML-CFTestSg-C8UVS567B6NS'}
stack_resources
список
state == present
Ресурсы стека AWS и их состояние. Список словарей, по одному словарю на ресурс.

Пример:
[{'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': None}]


Статус

  • Этот модуль гарантированно не будет иметь несовместимых изменений интерфейса в будущем. [stableinterface]
  • Этот модуль поддерживается командой Ansible Core. [core]

Поддержка Red Hat

Дополнительную информацию о поддержке данного модуля Red Hat можно получить из этой статьи базы знаний Red Hat: Red Hat Knowledge Base article.

Авторы

  • James S. Martin (@jsmartin)

Подсказка

Если вы заметите какие-либо проблемы в этом документе, вы можете отредактировать его, чтобы улучшить его.

© 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_module.html

Spec-Zone.ru

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