Spec-Zone.ru › Ansible 2.4

ec2_asg - Создание или удаление групп автоматического масштабирования AWS

Новая версия с 1.6.

  • Обзор
  • Требования (к хосту, на котором выполняется модуль)
  • Параметры
  • Примеры
  • Значения возврата
  • Примечания
    • Статус

Обзор

  • Может создавать или удалять группы автоматического масштабирования AWS
  • Работает с модулем ec2_lc для управления конфигурациями запуска

Требования (к хосту, на котором выполняется модуль)

  • python >= 2.6
  • boto

Параметры

параметр обязательно по умолчанию варианты комментарии
availability_zones
нет
Список имен зон доступности для создания группы. По умолчанию используется все зоны доступности в регионе, если vpc_zone_identifier не задан.
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
default_cooldown
(добавлен в 2.0)
нет 300 секунд
Количество секунд после завершения операции масштабирования, прежде чем может начаться следующая.
desired_capacity
нет
Желаемое количество экземпляров в группе; если не указано, используется текущее значение для группы.
ec2_url
нет
URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не указан, используется значение переменной окружения EC2_URL, если таковое есть.
health_check_period
(добавлен в 1.7)
нет 500 секунд
Время в секундах после появления нового экземпляра EC2, которое Auto Scaling начинает проверять его работоспособность.
health_check_type
(добавлен в 1.7)
нет EC2
  • EC2
  • ELB
Сервис, из которого нужно получить состояние работоспособности: Amazon EC2 или Elastic Load Balancer.
launch_config_name
да
Имя конфигурации запуска, используемой для группы. Для управления ими см. модуль ec2_lc. Если не указано, используется текущее значение группы.
lc_check
(добавлен в 1.8)
нет True
Проверка, чтобы убедиться, что экземпляры, которые заменяются с помощью replace_instances, не имеют уже текущую конфигурацию запуска.
load_balancers
нет
Список имен ELB для использования в группе
max_size
нет
Максимальное количество экземпляров в группе; если не указано, используется текущее значение группы.
min_size
нет
Минимальное количество экземпляров в группе; если не указано, используется текущее значение группы.
name
да
Уникальное имя для создаваемой или удаляемой группы
notification_topic
(добавлен в 2.2)
нет None
ARN темы SNS для отправки уведомлений о масштабировании.
notification_types
(добавлен в 2.2)
нет [u'autoscaling:EC2_INSTANCE_LAUNCH', u'autoscaling:EC2_INSTANCE_LAUNCH_ERROR', u'autoscaling:EC2_INSTANCE_TERMINATE', u'autoscaling:EC2_INSTANCE_TERMINATE_ERROR']
Список событий автоматического масштабирования для срабатывания уведомлений.
placement_group
(добавлен в 2.3)
нет None
Физическое расположение группы размещения кластера, созданной в Amazon EC2.
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
replace_all_instances
(добавлен в 1.8)
нет
В последовательном режиме заменяет все экземпляры со старой конфигурацией запуска на экземпляры с текущей.
replace_batch_size
(добавлен в 1.8)
нет 1
Количество экземпляров, которые необходимо заменить за один раз. Используется с replace_all_instances.
replace_instances
(добавлен в 1.8)
нет None
Список instance_ids, принадлежащих указанной группе ASG, которые требуется завершить и заменить экземплярами, соответствующими текущей конфигурации запуска.
security_token
(добавлен в 1.6)
нет
Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.
псевдонимы: access_token
state
нет present
  • present
  • absent
Регистрация или отмена регистрации экземпляра
suspend_processes
(добавлен в 2.3)
нет
  • Запуск
  • Завершение
  • Проверка работоспособности
  • Замена неисправных
  • Перебалансировка AZ
  • Уведомление об оповещениях
  • Расписанные действия
  • Добавление в балансировщик нагрузки
Список процессов масштабирования, которые нужно приостановить.
tags
(добавлен в 1.7)
нет None
Список тегов для добавления в группу автоматического масштабирования. Дополнительный ключ — 'propagate_at_launch', по умолчанию true.
target_group_arns
(добавлен в 2.4)
нет
Список ARNs целевых групп для использования в группе
termination_policies
(добавлен в 2.0)
нет По умолчанию
  • Старейший экземпляр
  • Новейший экземпляр
  • Старейшая конфигурация запуска
  • Ближайший к следующему часу
  • По умолчанию
Упорядоченный список критериев, используемых для выбора экземпляров, которые необходимо удалить из группы автоматического масштабирования при уменьшении емкости.
Для 'По умолчанию', при создании новой группы автоматического масштабирования, используется значение "По умолчанию". При изменении существующей группы автоматического масштабирования поддерживаются текущие политики завершения.
validate_certs
(добавлен в 1.5)
нет да
  • да
  • нет
При установке в «нет», сертификаты SSL не будут проверены для версий boto >= 2.6.0.
vpc_zone_identifier
нет None
Список идентификаторов подсетей VPC для использования
wait_for_instances
(добавлен в 1.9)
нет True
Ожидание, пока экземпляры ASG будут находиться в рабочем состоянии перед завершением. Если экземпляры находятся за ELB, ожидание будет продолжаться, пока ELB не определит, что все экземпляры имеют состояние lifecycle_state "InService" и состояние health_status "Healthy".
wait_timeout
(добавлен в 1.8)
нет 300
Время ожидания, прежде чем экземпляры станут работоспособными при замене. Используется совместно с параметром instance_ids.

Примеры

# Basic configuration

- ec2_asg:
    name: special
    load_balancers: [ 'lb1', 'lb2' ]
    availability_zones: [ 'eu-west-1a', 'eu-west-1b' ]
    launch_config_name: 'lc-1'
    min_size: 1
    max_size: 10
    desired_capacity: 5
    vpc_zone_identifier: [ 'subnet-abcd1234', 'subnet-1a2b3c4d' ]
    tags:
      - environment: production
        propagate_at_launch: no

# Rolling ASG Updates

# Below is an example of how to assign a new launch config to an ASG and terminate old instances.
#
# All instances in "myasg" that do not have the launch configuration named "my_new_lc" will be terminated in
# a rolling fashion with instances using the current launch configuration, "my_new_lc".
#
# This could also be considered a rolling deploy of a pre-baked AMI.
#
# If this is a newly created group, the instances will not be replaced since all instances
# will have the current launch configuration.

- name: create launch config
  ec2_lc:
    name: my_new_lc
    image_id: ami-lkajsf
    key_name: mykey
    region: us-east-1
    security_groups: sg-23423
    instance_type: m1.small
    assign_public_ip: yes

- ec2_asg:
    name: myasg
    launch_config_name: my_new_lc
    health_check_period: 60
    health_check_type: ELB
    replace_all_instances: yes
    min_size: 5
    max_size: 5
    desired_capacity: 5
    region: us-east-1

# To only replace a couple of instances instead of all of them, supply a list
# to "replace_instances":

- ec2_asg:
    name: myasg
    launch_config_name: my_new_lc
    health_check_period: 60
    health_check_type: ELB
    replace_instances:
    - i-b345231
    - i-24c2931
    min_size: 5
    max_size: 5
    desired_capacity: 5
    region: us-east-1

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

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

Имя Описание Возвращаемое значение Тип Пример
default_cooldown
Время стандартной задержки в секундах.
успешно int 300
desired_capacity
Количество экземпляров EC2, которые должны работать в этой группе.
успешно int 3
healthcheck_period
Время в секундах после запуска нового экземпляра EC2, которое Auto Scaling начинает проверять его состояние работоспособности.
успешно int 30
healthcheck_type
Сервис, от которого нужно получить статус работоспособности, один из "EC2" или "ELB".
успешно str ELB
healthy_instances
Количество экземпляров в рабочем состоянии.
успешно int 5
in_service_instances
Количество экземпляров в рабочем состоянии.
успешно int 3
instance_facts
Словарь экземпляров EC2 и их статуса по отношению к ASG.
успешно dict {'i-0123456789012': {'lifecycle_state': 'InService', 'health_status': 'Healthy', 'launch_config_name': 'public-webapp-production-1'}}
instances
Список идентификаторов экземпляров в ASG.
успешно list ['i-0123456789012']
launch_config_name
Имя конфигурации запуска, связанной с ASG. То же самое, что и launch_configuration_name, предоставлено для совместимости с модулем ec2_asg.
успешно str public-webapp-production-1
load_balancers
Список имен балансировщиков нагрузки, подключенных к ASG.
успешно list ['elb-webapp-prod']
max_size
Максимальный размер группы.
успешно int 3
min_size
Минимальный размер группы.
успешно int 1
pending_instances
Количество экземпляров в состоянии ожидания.
успешно int 1
tags
Список тегов для ASG и то, распространяются ли теги на экземпляры при запуске.
успешно list [{'propagate_at_launch': 'true', 'key': 'Name', 'value': 'public-webapp-production-1', 'resource_type': 'auto-scaling-group', 'resource_id': 'public-webapp-production-1'}, {'propagate_at_launch': 'true', 'key': 'env', 'value': 'production', 'resource_type': 'auto-scaling-group', 'resource_id': 'public-webapp-production-1'}]
target_group_arns
Список ARNs целевых групп, которые заполняет ASG.
успешно list ['arn:aws:elasticloadbalancing:ap-southeast-2:123456789012:targetgroup/target-group-host-hello/1a2b3c4d5e6f1a2b', 'arn:aws:elasticloadbalancing:ap-southeast-2:123456789012:targetgroup/target-group-path-world/abcd1234abcd1234']
target_group_names
Список имен целевых групп, которые заполняет ASG.
успешно list ['target-group-host-hello', 'target-group-path-world']
termination_policies
Список политик завершения работы для группы.
успешно str ['Default']
unhealthy_instances
Количество экземпляров в нерабочем состоянии.
успешно int 0
viable_instances
Количество экземпляров в работоспособном состоянии.
успешно int 1

Примечания

Примечание

  • Если параметры не заданы в модуле, следующие переменные окружения могут использоваться в порядке убывания приоритета 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, что означает, что разработчики этого модуля гарантируют, что не будет внесено никаких несовместимых изменений в интерфейсе.

Для получения помощи в разработке модулей, если вас это интересует, пожалуйста, ознакомьтесь с Информация о сообществе и вклад, Тестирование 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/ec2_asg_module.html

Spec-Zone.ru

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