Spec-Zone.ru › Ansible 2.6

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

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

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

Обзор

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

Требования

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

  • boto
  • boto3
  • botocore
  • python >= 2.6

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
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 ←
  • ELB
Сервис, от которого необходимо получить статус работоспособности: Amazon EC2 или Elastic Load Balancer.
launch_config_name
обязательно
Имя конфигурации запуска для группы. См. модуль ec2_lc для управления ими. Если не указано, используется текущее значение группы.
lc_check
(добавлено в 1.8)
По умолчанию:
"да"
Проверка, чтобы экземпляры, которые заменяются с помощью replace_instances, не имели текущую конфигурацию запуска.
load_balancers
Список имен ELB для использования в группе. Используется для классических балансировщиков нагрузки.
max_size
Максимальное количество экземпляров в группе. Если не указано, используется текущее значение группы.
metrics_collection
bool

(добавлено в 2.5)
    Варианты:
  • нет ←
  • да
Включить сборку метрик ASG
metrics_granularity
(добавлено в 2.5)
По умолчанию:
"1 минута"
При включенном metrics_collection, это определяет гранулярность собираемых метрик CloudWatch
metrics_list
(добавлено в 2.5)
По умолчанию:
["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
Список метрик масштабирования для сбора при включении metrics_collection
min_size
Минимальное количество экземпляров в группе. Если не указано, используется текущее значение группы.
name
обязательно
Уникальное имя для создаваемой или удаляемой группы.
notification_topic
(добавлено в 2.2)
ARN темы SNS для отправки уведомлений о масштабировании.
notification_types
(добавлено в 2.2)
По умолчанию:
["autoscaling:EC2_INSTANCE_LAUNCH", "autoscaling:EC2_INSTANCE_LAUNCH_ERROR", "autoscaling:EC2_INSTANCE_TERMINATE", "autoscaling:EC2_INSTANCE_TERMINATE_ERROR"]
Список событий масштабирования, которые должны запускать уведомления.
placement_group
(добавлено в 2.3)
Физическое расположение группы размещения кластера, созданной в 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)
Список идентификаторов экземпляров, принадлежащих указанному ASG, которые необходимо завершить и заменить экземплярами, соответствующими текущей конфигурации запуска.
security_token
(добавлено в 1.6)
Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.

Псевдонимы: access_token
state
    Варианты:
  • present ←
  • absent
Регистрация или отмена регистрации экземпляра
suspend_processes
(добавлено в 2.3)
    Варианты:
  • Запуск
  • Завершение
  • Проверка состояния
  • Замена неисправных
  • Перебалансировка AZ
  • Уведомление об оповещении
  • Распределённые действия
  • Добавление в балансировщик нагрузки
По умолчанию:
[]
Список процессов масштабирования для приостановки.
tags
(добавлено в 1.7)
Список тегов для добавления в группу Auto Scale. Дополнительный ключ — 'propagate_at_launch', который по умолчанию равен true.
target_group_arns
(добавлено в 2.4)
Список ARNs групп целевых экземпляров для использования в группе. Используется для балансировщиков нагрузки приложений.
termination_policies
(добавлено в 2.0)
    Варианты:
  • Старейший экземпляр
  • Самый новый экземпляр
  • Старейшая конфигурация запуска
  • Ближайший к следующему часу
  • По умолчанию ←
Отсортированный список критериев, используемых для выбора экземпляров, которые будут удалены из группы Auto Scaling при уменьшении ёмкости.
Для 'По умолчанию', при создании новой группы автомасштабирования, используется значение "По умолчанию". При изменении существующей группы автомасштабирования, текущие политики завершения сохраняются.
validate_certs
bool

(добавлено в 1.5)
    Варианты:
  • нет
  • да ←
При значении "нет", сертификаты SSL не будут проверены для версий boto >= 2.6.0.
vpc_zone_identifier
Список идентификаторов подсетей VPC для использования
wait_for_instances
(добавлено в 1.9)
По умолчанию:
"да"
Ожидание, пока экземпляры ASG перейдут в готовое состояние перед завершением. Если экземпляры находятся за ELB, ожидание будет продолжаться до тех пор, пока ELB не определит, что все экземпляры имеют состояние lifecycle_state "В работе" и состояние health_status "Нормально".
wait_timeout
(добавлено в 1.8)
По умолчанию:
300
Время ожидания, пока экземпляры станут работоспособными при замене. Если возникает ошибка "Ожидание слишком долго, пока экземпляры ELB будут работоспособными", попробуйте увеличить это значение.

Примечания

Примечание

  • Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета 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': {'health_status': 'Healthy', 'launch_config_name': 'public-webapp-production-1', 'lifecycle_state': 'InService'}}
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
metrics_collection
list
успешно
Список включённых метрик AutoscalingGroup.

Пример:
[{'Granularity': '1Minute', 'Metric': 'GroupInServiceInstances'}]
min_size
int
успешно
Минимальный размер группы

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

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

Пример:
[{'key': 'Name', 'value': 'public-webapp-production-1', 'resource_id': 'public-webapp-production-1', 'resource_type': 'auto-scaling-group', 'propagate_at_launch': 'true'}, {'key': 'env', 'value': 'production', 'resource_id': 'public-webapp-production-1', 'resource_type': 'auto-scaling-group', 'propagate_at_launch': 'true'}]
target_group_arns
list
успешно
Список ARN целевых групп, которые заполняет 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, что означает, что разработчики этого модуля гарантируют отсутствие несовместимых изменений интерфейса.

Техническое обслуживание

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

Список других модулей, также поддерживаемых партнером Ansible, см. здесь.

Автор

  • 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.6/modules/ec2_asg_module.html

Spec-Zone.ru

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