Spec-Zone.ru › Ansible 2.11

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

Примечание

Этот плагин входит в коллекцию community.aws (версия 1.3.0).

Для его установки используйте: ansible-galaxy collection install community.aws.

Для использования в книге задач укажите: community.aws.ec2_asg.

Добавлено в версии 1.0.0: of community.aws

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

Описание

  • Может создавать или удалять группы автоматического масштабирования AWS.
  • Может использоваться с модулем community.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.
Если задано profile, этот параметр игнорируется.
Передача параметров aws_access_key и profile одновременно устарела и параметры станут взаимоисключающими после 2022-06-01.

псевдонимы: ec2_access_key, access_key
aws_ca_bundle
путь
Расположение файла CA-сертификатов для проверки SSL-сертификатов.
Используется только для модулей на основе boto3.
Примечание: CA-сертификаты читаются со стороны модуля и могут потребовать явного копирования из контроллера, если запуск не происходит локально.
aws_config
словарь
Словарь для изменения конфигурации botocore.
Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.
Для модулей boto используется только ключ 'user_agent'. Дополнительные настройки boto можно найти по адресу http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto.
aws_secret_key
строка
Секретный ключ AWS. Если не задано, используется значение переменной среды AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY.
Если задано profile, этот параметр игнорируется.
Передача параметров aws_secret_key и profile одновременно устарела и параметры станут взаимоисключающими после 2022-06-01.

псевдонимы: ec2_secret_key, secret_key
debug_botocore_endpoint_logs
логический
    Варианты:
  • нет ←
  • да
Использование регистратора botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», выполненных во время задачи, вывода набора в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, выполненного во время выполнения плейбука. Также может использоваться переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS.
default_cooldown
целое число
Значение по умолчанию:
300
Количество секунд после завершения операции масштабирования, прежде чем может начаться другая.
desired_capacity
целое число
Желаемое количество экземпляров в группе, если не указано, используется текущее значение группы.
ec2_url
строка
URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где регион обязателен. Должен быть указан для всех остальных модулей, если регион не используется. Если не задано, используется значение переменной среды EC2_URL, если таковое есть.

псевдонимы: aws_endpoint_url, endpoint_url
health_check_period
целое число
Значение по умолчанию:
300
Продолжительность в секундах после того, как новый экземпляр EC2 начнёт работу, и Auto Scaling начнёт проверку его состояния.
health_check_type
строка
    Варианты:
  • EC2 ←
  • ELB
Сервис, от которого требуется состояние проверки работоспособности: Amazon EC2 или Elastic Load Balancer.
launch_config_name
строка
Имя конфигурации запуска, используемой для группы. Обратитесь к модулю community.aws.ec2_lc для управления ими.
Если не указано, используется текущее значение группы. Один из параметров launch_config_name или launch_template должен быть предоставлен.
launch_template
словарь
Словарь, описывающий шаблон запуска.
launch_template_id
строка
Идентификатор шаблона запуска. Требуется только один из параметров launch_template_name или launch_template_id.
launch_template_name
строка
Имя шаблона запуска. Требуется только один из параметров launch_template_name или launch_template_id.
version
строка
Номер версии используемого шаблона запуска.
По умолчанию используется последняя версия, если не указано.
lc_check
логический
    Варианты:
  • нет
  • да ←
Проверка, чтобы экземпляры, которые заменяются с помощью replace_instances, не имели текущей launch_config.
load_balancers
список / элементы=строка
Список имён ELB, используемых для группы. Используется для классических балансировщиков нагрузки.
lt_check
логический
    Варианты:
  • нет
  • да ←
Проверка, чтобы экземпляры, которые заменяются с помощью replace_instances, не имели текущего launch_template или launch_template version.
max_instance_lifetime
целое число
Максимальное время в секундах, в течение которого экземпляр может работать.
Максимальное время жизни экземпляра должно быть равно 0, находиться в диапазоне от 604800 до 31536000 секунд (включительно) или не указано.
Значение 0 отменяет ограничение по времени жизни.
max_size
целое число
Максимальное количество экземпляров в группе, если не указано, используется текущее значение группы.
metrics_collection
логический
    Варианты:
  • нет ←
  • да
Включить сбор метрик ASG.
metrics_granularity
строка
Значение по умолчанию:
"1Minute"
При metrics_collection=true это определит точность метрик, собираемых CloudWatch.
metrics_list
список / элементы=строка
Значение по умолчанию:
["GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
Список метрик автоматического масштабирования для сбора, когда metrics_collection=true.
min_size
целое число
Минимальное количество экземпляров в группе, если не указано, используется текущее значение группы.
mixed_instances_policy
словарь
Политика смешанных экземпляров для использования в ASG.
Используется только тогда, когда ASG настроен на использование шаблона запуска (launch_template).
См. также https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-mixedinstancespolicy.html
instance_types
список / элементы=строка
Список типов экземпляров.
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.
Использование profile переопределит aws_access_key, aws_secret_key и security_token. Поддержка одновременной передачи этих параметров с profile устарела.
aws_access_key, aws_secret_key и security_token будут взаимоисключающими с profile после 2022-06-01.

псевдонимы: aws_profile
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
boolean
    Варианты:
  • нет ←
  • да
Постепенно замещает все экземпляры, использующие старую конфигурацию запуска, экземплярами из новой конфигурации запуска. Увеличивает размер группы ASG на replace_batch_size, ожидает, пока новые экземпляры будут готовы к работе. После этого завершает пакет старых экземпляров, ожидает замены и повторяет до тех пор, пока все старые экземпляры не будут заменены. После этого размер ASG уменьшается до ожидаемого размера.
replace_batch_size
целое число
По умолчанию:
1
Количество экземпляров, которые нужно заменить за один раз. Используется с параметром replace_all_instances.
replace_instances
список / элементы=строка
Список instance_ids, принадлежащих указанной группе Auto Scaling, которые нужно завершить и заменить экземплярами, соответствующими текущей конфигурации запуска.
security_token
строка
AWS STS-токен безопасности. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.
Если задан параметр profile, этот параметр игнорируется.
Передача параметров security_token и profile одновременно устарела и параметры будут сделаны взаимно исключающими после 2022-06-01.

псевдонимы: aws_security_token, access_token
state
строка
    Варианты:
  • present ←
  • absent
Регистрация или отмена регистрации экземпляра.
suspend_processes
список / элементы=строка
По умолчанию:
[]
Список процессов масштабирования для приостановки.
Допустимые значения включают:
Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer
Полное описание допустимых значений можно найти в документации AWS:
https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html
tags
список / элементы=словарь
Список тегов для добавления в группу Auto Scaling.
Необязательный ключ — propagate_at_launch, который по умолчанию равен true.
Когда propagate_at_launch равен true, теги будут передаваться созданным экземплярам.
target_group_arns
список / элементы=строка
Список ARNs целевых групп для использования в группе. Используется для балансировщиков нагрузки приложений.
termination_policies
список / элементы=строка
По умолчанию:
"Default"
Упорядоченный список критериев, используемых для выбора экземпляров, которые будут удалены из группы Auto Scaling при уменьшении емкости.
Использование termination_policies=Default при изменении существующей группы Auto Scaling приведет к сохранению существующей политики вместо изменения на Default.
Допустимые значения включают: Default, OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour.
Полное описание допустимых значений можно найти в документации AWS:
https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#custom-termination-policy
validate_certs
boolean
    Варианты:
  • нет
  • да ←
При значении "нет" сертификаты SSL не будут проверены для версий boto >= 2.6.0.
vpc_zone_identifier
список / элементы=строка
Список идентификаторов подсетей VPC для использования
wait_for_instances
boolean
    Варианты:
  • нет
  • да ←
Ожидать, пока экземпляры ASG будут в состоянии готовности перед завершением. Если экземпляры находятся за ELB, он будет ждать, пока ELB определит, что все экземпляры имеют lifecycle_state "InService" и health_status "Healthy".
wait_timeout
целое число
По умолчанию:
300
Время ожидания, пока экземпляры станут работоспособными при их замене. Если вы видите ошибку "Слишком долго ожидали, пока экземпляры ELB будут работоспособны", попробуйте увеличить это значение.

Примечания

Примечание

  • Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета AWS_URL или EC2_URL, AWS_PROFILE или AWS_DEFAULT_PROFILE, 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, AWS_CA_BUNDLE
  • Ansible использует конфигурационный файл boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
  • AWS_REGION или EC2_REGION обычно используются для указания региона AWS, когда это требуется, но это также можно настроить в конфигурационном файле boto

Примеры

# Basic configuration with Launch Configuration

- community.aws.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
  community.aws.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

- community.aws.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":

- community.aws.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

- community.aws.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

# Basic Configuration with Launch Template using mixed instance policy

- community.aws.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'
    mixed_instances_policy:
        instance_types:
            - t3a.large
            - t3.large
            - t2.large
    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 начинает проверяться на работоспособность службой автоматического масштабирования.

Пример:
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_instance_lifetime
целое число
успех
Максимальное время в секундах, которое экземпляр может находиться в рабочем состоянии.

Пример:
604800
max_size
целое число
успех
Максимальный размер группы

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

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

Пример:
1
mixed_instance_policy
список / элементы=строка
успех
Возвращает список типов экземпляров, если политика смешанных типов экземпляров установлена.

Пример:
['t3.micro', 't3a.micro']
pending_instances
целое число
успех
Количество экземпляров в состоянии ожидания

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

Пример:
[{'key': 'Name', 'propagate_at_launch': 'true', 'resource_id': 'public-webapp-production-1', 'resource_type': 'auto-scaling-group', 'value': 'public-webapp-production-1'}, {'key': 'env', 'propagate_at_launch': 'true', 'resource_id': 'public-webapp-production-1', 'resource_type': 'auto-scaling-group', 'value': 'production'}]
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


Авторы

  • Gareth Rushgrove (@garethr)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/aws/ec2_asg_module.html

Spec-Zone.ru

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