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) |
| Сервис, из которого необходимо получить информацию о работоспособности: 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 |
| Регистрация или отмена регистрации экземпляра. |
| suspend_processes (добавлен в 2.3) |
[] | Список процессов масштабирования для приостановки. |
| tags (добавлен в 1.7) | Значение по умолчанию: None | Список тегов для добавления в группу Auto Scale. Необязательный ключ — 'propagate_at_launch', по умолчанию — true. |
| target_group_arns (добавлен в 2.4) | Список ARNs целевой группы для использования в группе. Используется для балансировщиков приложений. | |
| termination_policies (добавлен в 2.0) |
| Упорядоченный список критериев, используемых для выбора экземпляров, которые необходимо удалить из группы автоматического масштабирования при уменьшении емкости. Для '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