Spec-Zone.ru › Ansible 2.5

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

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

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

Обзор

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

Требования

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

  • boto
  • boto3
  • botocore
  • python >= 2.6

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
availability_zones
Список имен зон доступности, в которых должна быть создана группа. По умолчанию используется все доступные зоны в регионе, если vpc_zone_identifier не задан.
aws_access_key Значение по умолчанию:
None
Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY.

Псевдонимы: ec2_access_key, access_key
aws_secret_key Значение по умолчанию:
None
Секретный ключ 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 Значение по умолчанию:
None
URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковое имеется.
health_check_period
(добавлен в 1.7)
Значение по умолчанию:
500 секунд
Время в секундах после появления нового экземпляра EC2, в течение которого Auto Scaling начинает проверять его работоспособность.
health_check_type
(добавлен в 1.7)
    Варианты:
  • EC2 ←
  • ELB
Сервис, из которого необходимо получить информацию о работоспособности: Amazon EC2 или Elastic Load Balancer.
launch_config_name
обязательно
Имя конфигурации запуска, используемой для группы. См. модуль ec2_lc для управления ими. Если не указано, используется текущее значение группы.
lc_check
(добавлен в 1.8)
Значение по умолчанию:
да
Проверка, чтобы экземпляры, которые заменяются с помощью 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)
Значение по умолчанию:
None
Использует профиль 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)
Значение по умолчанию:
None
Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.

Псевдонимы: access_token
state
    Варианты:
  • present ←
  • absent
Регистрация или отмена регистрации экземпляра.
suspend_processes
(добавлен в 2.3)
    Варианты:
  • Launch
  • Terminate
  • HealthCheck
  • ReplaceUnhealthy
  • AZRebalance
  • AlarmNotification
  • ScheduledActions
  • AddToLoadBalancer
Значение по умолчанию:
[]
Список процессов масштабирования для приостановки.
tags
(добавлен в 1.7)
Значение по умолчанию:
None
Список тегов для добавления в группу Auto Scale. Необязательный ключ — 'propagate_at_launch', по умолчанию — true.
target_group_arns
(добавлен в 2.4)
Список ARNs целевой группы для использования в группе. Используется для балансировщиков приложений.
termination_policies
(добавлен в 2.0)
    Варианты:
  • OldestInstance
  • NewestInstance
  • OldestLaunchConfiguration
  • ClosestToNextInstanceHour
  • Default ←
Упорядоченный список критериев, используемых для выбора экземпляров, которые необходимо удалить из группы автоматического масштабирования при уменьшении емкости.
Для 'Default', при создании новой группы автоматического масштабирования, используется значение "Default". При изменении существующей группы автоматического масштабирования сохраняются текущие политики завершения.
validate_certs
(добавлен в 1.5)
    Варианты:
  • нет
  • да ←
Если установлено в «нет», сертификаты SSL не будут проверяться для версий boto >= 2.6.0.
vpc_zone_identifier Значение по умолчанию:
None
Список идентификаторов подсетей VPC.
wait_for_instances
(добавлен в 1.9)
Значение по умолчанию:
да
Ожидание, пока экземпляры ASG перейдут в рабочее состояние, прежде чем завершить выполнение. Если экземпляры находятся за ELB, ожидается, пока ELB определит, что все экземпляры находятся в состоянии lifecycle_state "InService" и health_status "Healthy".
wait_timeout
(добавлен в 1.8)
Значение по умолчанию:
300
Время ожидания, прежде чем экземпляры станут работоспособными после замены. Используется в сочетании с параметром instance_ids.

Примечания

Примечание

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

Примеры

# 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

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

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

Ключ Возвращаемое значение Описание
auto_scaling_group_arn
str
успех
Уникальный ARN группы автомасштабирования

Пример:
arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:6a09ad6d-eeee-1234-b987-ee123ced01ad:autoScalingGroupName/myasg
auto_scaling_group_name
str
успех
Уникальное имя группы автомасштабирования

Пример:
myasg
availability_zones
list
успех
Доступные зоны для группы автомасштабирования

Пример:
['us-east-1d']
created_time
str
успех
Отметка времени создания группы автомасштабирования

Пример:
2017-11-08T14:41:48.272000+00:00
default_cooldown
int
успех
Время охлаждения по умолчанию в секундах.

Пример:
300
desired_capacity
int
успех
Количество экземпляров EC2, которые должны работать в этой группе.

Пример:
3
healthcheck_period
int
успех
Промежуток времени в секундах после того, как новый экземпляр EC2 начинает работу, который Auto Scaling начинает проверять его состояние.

Пример:
30
healthcheck_type
str
успех
Сервис, от которого вы хотите получить состояние работоспособности, один из "EC2" или "ELB".

Пример:
ELB
healthy_instances
int
успех
Количество экземпляров в работоспособном состоянии

Пример:
5
in_service_instances
int
успех
Количество экземпляров в работе

Пример:
3
instance_facts
dict
успех
Словарь экземпляров EC2 и их состояния по отношению к группе ASG.

Пример:
{'i-0123456789012': {'lifecycle_state': 'InService', 'health_status': 'Healthy', 'launch_config_name': 'public-webapp-production-1'}}
instances
list
успех
Список идентификаторов экземпляров в группе ASG

Пример:
['i-0123456789012']
launch_config_name
str
успех
Имя конфигурации запуска, связанной с ASG. То же, что и launch_configuration_name, предоставлено для совместимости с модулем ec2_asg.

Пример:
public-webapp-production-1
load_balancers
list
успех
Список имен балансировщиков нагрузки, подключенных к ASG.

Пример:
['elb-webapp-prod']
max_size
int
успех
Максимальный размер группы

Пример:
3
min_size
int
успех
Минимальный размер группы

Пример:
1
pending_instances
int
успех
Количество экземпляров в состоянии ожидания

Пример:
1
tags
list
успех
Список тегов для ASG и того, распространяются ли теги на экземпляры при запуске.

Пример:
[{'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
list
успех
Список ARNs целевых групп, которые заполняет ASG

Пример:
['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
list
успех
Список имен целевых групп, которые заполняет ASG

Пример:
['target-group-host-hello', 'target-group-path-world']
termination_policies
str
успех
Список политик завершения для группы.

Пример:
['Default']
unhealthy_instances
int
успех
Количество экземпляров в неработоспособном состоянии

viable_instances
int
успех
Количество экземпляров в работоспособном состоянии

Пример:
1
vpc_zone_identifier
str
успех
Идентификатор зоны VPC/подсети для группы автомасштабирования

Пример:
subnet-a31ef45f


Статус

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

Автор

  • Gareth Rushgrove (@garethr)

Подсказка

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

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

Spec-Zone.ru

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