Spec-Zone.ru › Ansible 2.7

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
boolean
добавлен в 2.6
    Варианты:
  • нет ←
  • да
Включить сбор метрик ASG
metrics_granularity
-
добавлен в 2.6
По умолчанию:
"1минута"
При включенном metrics_collection, это определяет точность собираемых метрик CloudWatch
metrics_list
-
добавлен в 2.6
По умолчанию:
["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
    Варианты:
  • Launch
  • Terminate
  • HealthCheck
  • ReplaceUnhealthy
  • AZRebalance
  • AlarmNotification
  • ScheduledActions
  • AddToLoadBalancer
По умолчанию:
[]
Список процессов масштабирования для приостановки.
tags
-
добавлен в 1.7
Список тегов для добавления в группу Auto Scale. Необязательный ключ 'propagate_at_launch', который по умолчанию равен true.
target_group_arns
-
добавлен в 2.4
Список ARNs групп целевых серверов для использования в группе. Используется для балансировщиков нагрузки приложений.
termination_policies
-
added in 2.0
    Choices:
  • OldestInstance
  • NewestInstance
  • OldestLaunchConfiguration
  • ClosestToNextInstanceHour
  • По умолчанию ←
Упорядоченный список критериев, используемых для выбора экземпляров, которые будут удалены из группы автоматического масштабирования при уменьшении емкости.
Для «По умолчанию», при создании новой группы автоматического масштабирования, используется значение «По умолчанию». При изменении существующей группы автоматического масштабирования сохраняются текущие политики завершения.
validate_certs
boolean
added in 1.5
    Choices:
  • no
  • да ←
Если установлено значение «no», сертификаты SSL не будут проверены для версий boto >= 2.6.0.
vpc_zone_identifier
-
Список VPC подсетей для использования
wait_for_instances
-
added in 1.9
По умолчанию:
"да"
Подождать, пока экземпляры группы автоматического масштабирования перейдут в состояние готовности перед завершением. Если экземпляры находятся за ELB, будет ожидать, пока ELB определит, что все экземпляры имеют состояние lifecycle_state «InService» и состояние health_status «Healthy».
wait_timeout
-
added in 1.8
По умолчанию:
300
Время ожидания, пока экземпляры станут работоспособными при замене. Если вы столкнулись с ошибкой "Waited too long for ELB instances to be healthy", попробуйте увеличить это значение.

Примечания

Примечание

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

Примеры

# 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
строка
успех
Уникальный ARN группы автоматического масштабирования

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример:
3
metrics_collection
список
успех
Список включенных метрик AutosSalingGroup

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

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

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

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

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

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

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

Пример:
subnet-a31ef45f


Статус

  • Данному модулю гарантированы изменения интерфейса, не нарушающие обратную совместимость в будущем. [stableinterface]
  • Этот модуль поддерживается партнёром Ansible. [certified]

Авторы

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

Spec-Zone.ru

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