Spec-Zone.ru › Ansible 2.4

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. ПРЕДУПРЕЖДЕНИЕ: если стека не существует, он будет создан без набора изменений. Если состояние отсутствует, стек будет удален немедленно без набора изменений.
disable_rollback
нет false
  • true
  • false
Если формирование стека завершится неудачно, откат удалит стек
ec2_url
нет
URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если она есть.
notification_arns
(добавлено в 2.0)
нет
Уникальные идентификаторы тем 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
да
Если state = "present", стек будет создан. Если state = "present", стек существует, а шаблон изменён, он будет обновлён. Если state = "absent", стек будет удалён.
tags
(добавлено в 1.4)
нет
Словарь тегов для связывания со стеком и его ресурсами во время создания стека. Могут быть обновлены позже, обновление тегов удаляет предыдущие записи.
template
нет
Локальный путь к шаблону cloudformation.
Это должен быть полный путь к файлу относительно рабочей директории. При использовании ролей это может выглядеть как "roles/cloudformation/files/cloudformation-example.json".
Если 'state' = 'present' и стек ещё не существует, необходимо указать либо 'template', либо 'template_url' (но не оба). Если 'state' = 'present', стек существует, и ни 'template', ни 'template_url' не указаны, будет повторно использован предыдущий шаблон.
template_format
(добавлено в 2.0)
нет json
  • json
  • yaml
(устарело) Для локальных шаблонов, позволяет указать формат json или yaml. Шаблоны теперь передаются в CloudFormation в сыром виде независимо от формата. Этот параметр игнорируется начиная с Ansible 2.3.
template_parameters
нет
список словарей всех переменных шаблона для стека
template_url
(добавлено в 2.0)
нет
Местоположение файла, содержащего тело шаблона. URL должен указывать на шаблон (максимальный размер 307 200 байт) в ведре S3 в том же регионе, что и стек.
Если 'state' = 'present' и стек ещё не существует, необходимо указать либо 'template', либо 'template_url' (но не оба). Если 'state' = 'present', стек существует, и ни 'template', ни 'template_url' не указаны, будет повторно использован предыдущий шаблон.
validate_certs
(добавлено в 1.5)
нет да
  • да
  • нет
Если установлено в "нет", сертификаты SSL не будут проверены для версий boto >= 2.6.0.

Примеры

# Basic task example
- name: launch ansible cloudformation example
  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: launch ansible cloudformation example
  cloudformation:
    stack_name: "ansible-cloudformation"
    state: "present"
    region: "us-east-1"
    disable_rollback: true
    template: "roles/cloudformation/files/cloudformation-example.json"
    template_parameters:
      KeyName: "jmartin"
      DiskType: "ephemeral"
      InstanceType: "m1.small"
      ClusterSize: 3
    tags:
      Stack: "ansible-cloudformation"

# Removal example
- name: tear down old deployment
  cloudformation:
    stack_name: "ansible-cloudformation-old"
    state: "absent"

# Use a template from a URL
- name: launch ansible cloudformation example
  cloudformation:
    stack_name: "ansible-cloudformation"
    state: present
    region: us-east-1
    disable_rollback: true
    template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template
  args:
    template_parameters:
      KeyName: jmartin
      DiskType: ephemeral
      InstanceType: m1.small
      ClusterSize: 3
    tags:
      Stack: ansible-cloudformation

# Use a template from a URL, and assume a role to execute
- name: launch ansible cloudformation example with role assumption
  cloudformation:
    stack_name: "ansible-cloudformation"
    state: present
    region: us-east-1
    disable_rollback: true
    template_url: https://s3.amazonaws.com/my-bucket/cloudformation.template
    role_arn: 'arn:aws:iam::123456789012:role/cloudformation-iam-role'
  args:
    template_parameters:
      KeyName: jmartin
      DiskType: ephemeral
      InstanceType: m1.small
      ClusterSize: 3
    tags:
      Stack: ansible-cloudformation

Возвращаемые значения

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

имя описание возвращается тип пример
events
Последние события в журнале событий CloudFormation. В некоторых случаях это могут быть события из предыдущего выполнения.
всегда список ['StackEvent AWS::CloudFormation::Stack stackname UPDATE_COMPLETE', 'StackEvent AWS::CloudFormation::Stack stackname UPDATE_COMPLETE_CLEANUP_IN_PROGRESS']
log
Отладочные логи. Полезны при модификации или поиске ошибки.
всегда список ['обновление стека']
stack_outputs
Словарь ключ:значение всех текущих выходных данных стека. Если выходных данных стека нет, это пустой словарь.
состояние == present словарь {'MySg': 'AnsibleModuleTestYAML-CFTestSg-C8UVS567B6NS'}
stack_resources
Ресурсы стека AWS и их состояние. Список словарей, по одному словарю на ресурс.
состояние == present список [{'status': 'UPDATE_COMPLETE', 'physical_resource_id': 'cloudformation2-CFTestSg-16UQ4CYQ57O9F', 'logical_resource_id': 'CFTestSg', 'status_reason': None, 'last_updated_time': '2016-10-11T19:40:14.979000+00:00', 'resource_type': 'AWS::EC2::SecurityGroup'}]

Примечания

Примечание

  • Начиная с версии 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), если учетные данные не предоставлены. См. http://boto.readthedocs.org/en/latest/boto_config_tut.html
  • AWS_REGION или EC2_REGION обычно используются для указания региона AWS, когда это необходимо, но это также можно настроить в конфигурационном файле boto

Статус

Этот модуль помечен как stableinterface, что означает, что авторы этого модуля гарантируют, что не будут вноситься обратные несовместимые изменения в интерфейс.

Информация о техническом обслуживании

Для получения дополнительной информации о поддержке этого модуля Red Hat, пожалуйста, обратитесь к этому knowledge base article<https://access.redhat.com/articles/rhel-top-support-policies>

Для помощи в разработке модулей, если вы заинтересованы, пожалуйста, прочитайте Информация о сообществе и вклад, Тестирование Ansible и Разработка модулей.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/cloudformation_module.html

Spec-Zone.ru

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