Spec-Zone.ru › Ansible 2.9

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

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

Описание

  • Может создавать или удалять группы автоматического масштабирования 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
debug_botocore_endpoint_logs
логический тип
добавлен в 2.8
    Варианты:
  • нет ←
  • да
Использовать логгер botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», сделанных во время задачи, выводя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, сделанного во время выполнения playbook. Также может использоваться переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS.
default_cooldown
-
Значение по умолчанию:
"300 секунд"
Количество секунд после завершения операции масштабирования, прежде чем может начаться следующая.
desired_capacity
-
Желаемое количество экземпляров в группе; если не указано, используется текущее значение группы.
ec2_url
строка
URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной среды EC2_URL, если таковое имеется.
health_check_period
-
Значение по умолчанию:
"300 секунд"
Время в секундах после запуска нового экземпляра EC2, когда Auto Scaling начинает проверять его работоспособность.
health_check_type
-
    Варианты:
  • EC2 ←
  • ELB
Сервис, из которого необходимо получить статус работоспособности: Amazon EC2 или Elastic Load Balancer.
launch_config_name
-
Имя конфигурации запуска, используемой для группы. Для управления этими конфигурациями см. модуль ec2_lc. Если не указано, используется текущее значение группы. Необходимо указать либо launch_config_name, либо launch_template.
launch_template
-
добавлен в 2.8
Словарь, описывающий шаблон запуска.
launch_template_id
-
Идентификатор шаблона запуска. Требуется указать только один из launch_template_name или launch_template_id.
launch_template_name
-
Имя шаблона запуска. Требуется указать только один из launch_template_name или launch_template_id.
version
-
Значение по умолчанию:
"latest"
Номер версии шаблона запуска. По умолчанию используется последняя версия, если не указано иное.
lc_check
логический тип
    Варианты:
  • нет
  • да ←
Проверка, чтобы экземпляры, которые заменяются с помощью replace_instances, не имели текущую конфигурацию запуска.
load_balancers
-
Список имен ELB, используемых для группы. Используется для классических балансировщиков нагрузки.
lt_check
логический тип
добавлен в 2.8
    Варианты:
  • нет
  • да ←
Проверка, чтобы экземпляры, которые заменяются с помощью replace_instances, не имели текущий шаблон запуска или версию шаблона запуска.
max_size
-
Максимальное количество экземпляров в группе. Если не указано, используется текущее значение группы.
metrics_collection
логический тип
добавлен в 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
-
ARN темы SNS для отправки уведомлений о масштабировании.
notification_types
-
Значение по умолчанию:
["autoscaling:EC2_INSTANCE_LAUNCH", "autoscaling:EC2_INSTANCE_LAUNCH_ERROR", "autoscaling:EC2_INSTANCE_TERMINATE", "autoscaling:EC2_INSTANCE_TERMINATE_ERROR"]
Список событий масштабирования, которые будут вызывать уведомления.
placement_group
-
Физическое расположение группы размещения кластера, созданной в Amazon EC2.
profile
строка
Использует профиль 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
логический тип
    Варианты:
  • нет ←
  • да
В пошаговом режиме заменяет все экземпляры, использовавшие старую конфигурацию запуска, экземплярами по новой конфигурации запуска. Увеличивает размер ASG на replace_batch_size, ожидает, пока новые экземпляры будут готовы. После этого завершает пакет старых экземпляров, ожидает замены и повторяет, пока все старые экземпляры не будут заменены. После завершения размер ASG уменьшается до ожидаемого значения.
replace_batch_size
-
Значение по умолчанию:
1
Количество экземпляров, которые нужно заменить за один раз. Используется с replace_all_instances.
replace_instances
-
Список идентификаторов экземпляров, принадлежащих указанному ASG, которые необходимо завершить и заменить на экземпляры, соответствующие текущей конфигурации запуска.
security_token
строка
Токен безопасности AWS STS. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.

псевдонимы: access_token
state
-
    Выборы:
  • present ←
  • absent
регистрация или отключение экземпляра
suspend_processes
-
    Выборы:
  • Запуск
  • Завершение
  • Проверка состояния
  • Замена неисправных
  • Перебалансировка AZ
  • Уведомления об оповещениях
  • Планируемые действия
  • Добавление в балансировщик нагрузки
По умолчанию:
[]
Список процессов масштабирования для приостановки.
tags
-
Список тегов для добавления в группу Auto Scale. Дополнительный ключ — 'propagate_at_launch', по умолчанию — true.
target_group_arns
-
добавлено в 2.4
Список ARNs групп целевых серверов для использования в группе. Используется для балансировщиков приложений.
termination_policies
-
    Выборы:
  • Старейший экземпляр
  • Самый новый экземпляр
  • Старейшая конфигурация запуска
  • Ближайшее к следующему часу запуска
  • По умолчанию ←
Упорядоченный список критериев, используемых для выбора экземпляров, которые нужно удалить из группы Auto Scaling при уменьшении емкости.
Для 'По умолчанию', при создании новой группы автомасштабирования, используется значение "По умолчанию". При изменении существующей группы автомасштабирования текущие политики завершения сохраняются.
validate_certs
булево
    Выборы:
  • нет
  • да ←
При установке в "нет", сертификаты SSL не будут проверены для версий boto >= 2.6.0.
vpc_zone_identifier
-
Список идентификаторов подсетей VPC для использования
wait_for_instances
булево
    Выборы:
  • нет
  • да ←
Ожидание, пока экземпляры ASG окажутся в рабочем состоянии перед завершением. Если экземпляры находятся за ELB, он будет ожидать, пока ELB не определит, что все экземпляры имеют состояние жизненного цикла "В службе" и статус состояния "Здоровый".
wait_timeout
-
По умолчанию:
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), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
  • AWS_REGION или EC2_REGION обычно используются для указания региона AWS, если это необходимо, но это также можно настроить в файле конфигурации boto

Примеры

# Basic configuration with Launch 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

# Basic Configuration with Launch Template

- ec2_asg:
    name: special
    load_balancers: [ 'lb1', 'lb2' ]
    availability_zones: [ 'eu-west-1a', 'eu-west-1b' ]
    launch_template:
        version: '1'
        launch_template_name: 'lt-example'
        launch_template_id: 'lt-123456'
    min_size: 1
    max_size: 10
    desired_capacity: 5
    vpc_zone_identifier: [ 'subnet-abcd1234', 'subnet-1a2b3c4d' ]
    tags:
      - environment: production
        propagate_at_launch: no

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

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

Ключ Возвращаемое значение Описание
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-инстансов и их статусов, относящихся к группе автоматического масштабирования.

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

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

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

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

Пример:
3
metrics_collection
список
успех
Список включенных метрик группы автоматического масштабирования

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

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

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

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

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

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

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

viable_instances
целое число
успех
Количество жизнеспособных инстансов

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

Пример:
subnet-a31ef45f


Статус

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

Авторы

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

Spec-Zone.ru

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