Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

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

Новое в версии 1.0.0: из 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'. См. http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto для получения дополнительной информации о конфигурации 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, чтобы вывести общий список, созданный во время выполнения playbook. Также можно использовать переменную окружения 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.
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"]
Список метрик autoscaling для сбора при 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 вступает в службу, 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_instance_lifetime
целое число
успех
Максимальное время в секундах, в течение которого экземпляр может быть в службе.

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

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

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

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

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

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

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

Пример:
subnet-a31ef45f


Авторы

  • 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.10/collections/community/aws/ec2_asg_module.html

Spec-Zone.ru

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