ec2_asg - Создание или удаление групп автоматического масштабирования AWS
Новая версия с 1.6.
- Обзор
- Требования (к хосту, на котором выполняется модуль)
- Параметры
- Примеры
- Значения возврата
- Примечания
Обзор
- Может создавать или удалять группы автоматического масштабирования AWS
- Работает с модулем ec2_lc для управления конфигурациями запуска
Требования (к хосту, на котором выполняется модуль)
- python >= 2.6
- boto
Параметры
| параметр | обязательно | по умолчанию | варианты | комментарии |
|---|---|---|---|---|
| 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 |
| Сервис, из которого нужно получить состояние работоспособности: Amazon EC2 или Elastic Load Balancer. |
| launch_config_name | да | Имя конфигурации запуска, используемой для группы. Для управления ими см. модуль ec2_lc. Если не указано, используется текущее значение группы. | ||
| lc_check (добавлен в 1.8)
| нет | True | Проверка, чтобы убедиться, что экземпляры, которые заменяются с помощью 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)
| нет | Использует профиль 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)
| нет | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token | ||
| state | нет | present |
| Регистрация или отмена регистрации экземпляра |
| suspend_processes (добавлен в 2.3)
| нет |
| Список процессов масштабирования, которые нужно приостановить. | |
| tags (добавлен в 1.7)
| нет | None | Список тегов для добавления в группу автоматического масштабирования. Дополнительный ключ — 'propagate_at_launch', по умолчанию true. | |
| target_group_arns (добавлен в 2.4)
| нет | Список ARNs целевых групп для использования в группе | ||
| termination_policies (добавлен в 2.0)
| нет | По умолчанию |
| Упорядоченный список критериев, используемых для выбора экземпляров, которые необходимо удалить из группы автоматического масштабирования при уменьшении емкости. Для 'По умолчанию', при создании новой группы автоматического масштабирования, используется значение "По умолчанию". При изменении существующей группы автоматического масштабирования поддерживаются текущие политики завершения. |
| validate_certs (добавлен в 1.5)
| нет | да |
| При установке в «нет», сертификаты SSL не будут проверены для версий boto >= 2.6.0. |
| vpc_zone_identifier | нет | None | Список идентификаторов подсетей VPC для использования | |
| wait_for_instances (добавлен в 1.9)
| нет | True | Ожидание, пока экземпляры ASG будут находиться в рабочем состоянии перед завершением. Если экземпляры находятся за ELB, ожидание будет продолжаться, пока ELB не определит, что все экземпляры имеют состояние lifecycle_state "InService" и состояние health_status "Healthy". | |
| wait_timeout (добавлен в 1.8)
| нет | 300 | Время ожидания, прежде чем экземпляры станут работоспособными при замене. Используется совместно с параметром instance_ids. |
Примеры
# 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
Значения возврата
Общие значения возврата описаны здесь Значения возврата, следующие поля уникальны для этого модуля:
| Имя | Описание | Возвращаемое значение | Тип | Пример |
|---|---|---|---|---|
| default_cooldown | Время стандартной задержки в секундах. | успешно | int | 300 |
| desired_capacity | Количество экземпляров EC2, которые должны работать в этой группе. | успешно | int | 3 |
| healthcheck_period | Время в секундах после запуска нового экземпляра EC2, которое Auto Scaling начинает проверять его состояние работоспособности. | успешно | int | 30 |
| healthcheck_type | Сервис, от которого нужно получить статус работоспособности, один из "EC2" или "ELB". | успешно | str | ELB |
| healthy_instances | Количество экземпляров в рабочем состоянии. | успешно | int | 5 |
| in_service_instances | Количество экземпляров в рабочем состоянии. | успешно | int | 3 |
| instance_facts | Словарь экземпляров EC2 и их статуса по отношению к ASG. | успешно | dict | {'i-0123456789012': {'lifecycle_state': 'InService', 'health_status': 'Healthy', 'launch_config_name': 'public-webapp-production-1'}} |
| instances | Список идентификаторов экземпляров в ASG. | успешно | list | ['i-0123456789012'] |
| launch_config_name | Имя конфигурации запуска, связанной с ASG. То же самое, что и launch_configuration_name, предоставлено для совместимости с модулем ec2_asg. | успешно | str | public-webapp-production-1 |
| load_balancers | Список имен балансировщиков нагрузки, подключенных к ASG. | успешно | list | ['elb-webapp-prod'] |
| max_size | Максимальный размер группы. | успешно | int | 3 |
| min_size | Минимальный размер группы. | успешно | int | 1 |
| pending_instances | Количество экземпляров в состоянии ожидания. | успешно | int | 1 |
| tags | Список тегов для ASG и то, распространяются ли теги на экземпляры при запуске. | успешно | list | [{'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 | Список ARNs целевых групп, которые заполняет ASG. | успешно | list | ['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. | успешно | list | ['target-group-host-hello', 'target-group-path-world'] |
| termination_policies | Список политик завершения работы для группы. | успешно | str | ['Default'] |
| unhealthy_instances | Количество экземпляров в нерабочем состоянии. | успешно | int | 0 |
| viable_instances | Количество экземпляров в работоспособном состоянии. | успешно | int | 1 |
Примечания
Примечание
- Если параметры не заданы в модуле, следующие переменные окружения могут использоваться в порядке убывания приоритета
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
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будет внесено никаких несовместимых изменений в интерфейсе.
Для получения помощи в разработке модулей, если вас это интересует, пожалуйста, ознакомьтесь с Информация о сообществе и вклад, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/ec2_asg_module.html