elb_target_group – Управление группой целей для балансировщика нагрузки приложений или сети
Новая в версии 2.4.
Обзор
- Управление группой целей балансировщика нагрузки AWS Elastic Load Balancer. Подробнее см. https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html или https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- boto
- boto3
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| 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 для вывода полного списка, выполненного во время выполнения плейбука. Также можно использовать переменную среды ANSIBLE_DEBUG_BOTOCORE_LOGS. |
| deregistration_delay_timeout - | Время ожидания Elastic Load Balancing перед изменением состояния дерегистрируемого целевого объекта с «ожидание» на «неиспользуемый». Диапазон значений: 0–3600 секунд. | |
| ec2_url строка | URL для подключения к EC2 или облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если не используется регион. Если не задан, используется значение переменной среды EC2_URL, если таковое имеется. | |
| health_check_interval - | Приблизительное время, в секундах, между проверками работоспособности отдельных целевых объектов. | |
| health_check_path - | Путь для проверки работоспособности, являющийся целевым адресом для проверки работоспособности на целевых объектах. Путь должен быть определен для настройки проверки работоспособности. | |
| health_check_port - | Значение по умолчанию: "Порт, на котором каждый целевой объект получает трафик от балансировщика нагрузки." | Порт, используемый балансировщиком нагрузки при проверке работоспособности целевых объектов. Можно установить в «traffic-port» для соответствия порту целевого объекта. |
| health_check_protocol - |
| Протокол, используемый балансировщиком нагрузки при проверке работоспособности целевых объектов. |
| health_check_timeout - | Время, в секундах, в течение которого отсутствие ответа от целевого объекта означает неудачную проверку работоспособности. | |
| healthy_threshold_count - | Количество последовательных успешных проверок работоспособности, необходимых для того, чтобы считать целевой объект, неисправный, исправным. | |
| modify_targets логический тип |
| Определяет, нужно ли изменять существующие целевые объекты в группе, чтобы они соответствовали значениям, переданным с модулем. |
| name - / обязательно | Имя группы целевых объектов. | |
| port - | Порт, на котором целевые объекты получают трафик. Используется этот порт, если не указан порт при регистрации целевого объекта. Требуется, если state — present. | |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| protocol - |
| Протокол для маршрутизации трафика к целевым объектам. Требуется, когда state — present. |
| purge_tags логический тип |
| Если «да», существующие теги будут удалены из ресурса, чтобы точно соответствовать параметру tags. Если параметр tags не задан, теги не будут изменены. |
| region строка | AWS регион. Если не указан, используется значение переменной среды AWS_REGION или EC2_REGION, если таковое имеется. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
псевдонимы: aws_region, ec2_region | |
| security_token строка | AWS STS токен безопасности. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token | |
| state - / обязательно |
| Создать или удалить группу целевых объектов. |
| stickiness_enabled логический тип |
| Указывает, включены ли липкие сессии. |
| stickiness_lb_cookie_duration - | Срок действия, в секундах, в течение которого запросы от клиента должны маршрутизироваться к тому же целевому объекту. После истечения этого срока, созданный балансировщиком нагрузки cookie считается устаревшим. Диапазон значений: 1 секунда до 1 недели (604800 секунд). | |
| stickiness_type - | Значение по умолчанию: "lb_cookie" | Тип липких сессий. Возможные значения: lb_cookie. |
| successful_response_codes - | HTTP-коды, используемые при проверке успешного ответа от целевого объекта. Принимает несколько значений (например, «200,202») или диапазон значений (например, «200-299»). Требуется параметр health_check_protocol. | |
| tags - | Словарь одного или нескольких тегов для назначения целевой группе. | |
| target_type - добавлено в 2.5 |
| Тип целевого объекта, который необходимо указать при регистрации целевых объектов в этой группе целевых объектов. Возможные значения: instance (целевые объекты задаются по ID экземпляра), ip (целевые объекты задаются по IP-адресу) или lambda (целевой объект задаётся по ARN). Обратите внимание, что вы не можете указать целевые объекты для группы целевых объектов, используя более одного типа. Тип целевого объекта lambda принимает только один целевой объект. При указании более одного целевого объекта используется только первый. Все дополнительные целевые объекты игнорируются. Если тип целевого объекта — ip, укажите IP-адреса из подсетей виртуальной частной сети (VPC) для группы целевых объектов, диапазон RFC 1918 (10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16) и диапазон RFC 6598 (100.64.0.0/10). Вы не можете указать общедоступные IP-адреса. |
| targets - | Список целевых объектов для назначения в группу целевых объектов. По умолчанию параметр имеет значение пустой список. Если не задан параметр «modify_targets», все существующие целевые объекты будут удалены из группы. Список должен содержать параметры «Id» и «Порт». Подробности см. в примерах. | |
| unhealthy_threshold_count - | Количество последовательных неудачных проверок работоспособности, необходимых для того, чтобы считать целевой объект неисправным. | |
| validate_certs логический тип |
| При установке в «нет», сертификаты SSL не будут проверены для версий boto >= 2.6.0. |
| vpc_id - | Идентификатор виртуальной частной сети (VPC). Требуется, если state — present. |
| wait boolean added in 2.4 |
| Ожидать ли целевую группу. |
| wait_timeout - added in 2.4 | По умолчанию: 200 | Время ожидания целевой группы. |
Примечания
Примечание
- После создания целевой группы можно изменить только её проверку работоспособности с помощью последующих вызовов.
- Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
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
Примеры
# Note: These examples do not set authentication details, see the AWS Guide for details.
# Create a target group with a default health check
- elb_target_group:
name: mytargetgroup
protocol: http
port: 80
vpc_id: vpc-01234567
state: present
# Modify the target group with a custom health check
- elb_target_group:
name: mytargetgroup
protocol: http
port: 80
vpc_id: vpc-01234567
health_check_path: /
successful_response_codes: "200,250-260"
state: present
# Delete a target group
- elb_target_group:
name: mytargetgroup
state: absent
# Create a target group with instance targets
- elb_target_group:
name: mytargetgroup
protocol: http
port: 81
vpc_id: vpc-01234567
health_check_path: /
successful_response_codes: "200,250-260"
targets:
- Id: i-01234567
Port: 80
- Id: i-98765432
Port: 80
state: present
wait_timeout: 200
wait: True
# Create a target group with IP address targets
- elb_target_group:
name: mytargetgroup
protocol: http
port: 81
vpc_id: vpc-01234567
health_check_path: /
successful_response_codes: "200,250-260"
target_type: ip
targets:
- Id: 10.0.0.10
Port: 80
AvailabilityZone: all
- Id: 10.0.0.20
Port: 80
state: present
wait_timeout: 200
wait: True
# Using lambda as targets require that the target group
# itself is allow to invoke the lambda function.
# therefore you need first to create an empty target group
# to receive its arn, second, allow the target group
# to invoke the lamba function and third, add the target
# to the target group
- name: first, create empty target group
elb_target_group:
name: my-lambda-targetgroup
target_type: lambda
state: present
modify_targets: False
register: out
- name: second, allow invoke of the lambda
lambda_policy:
state: "{{ state | default('present') }}"
function_name: my-lambda-function
statement_id: someID
action: lambda:InvokeFunction
principal: elasticloadbalancing.amazonaws.com
source_arn: "{{ out.target_group_arn }}"
- name: third, add target
elb_target_group:
name: my-lambda-targetgroup
target_type: lambda
state: present
targets:
- Id: arn:aws:lambda:eu-central-1:123456789012:function:my-lambda-function
Возвращаемые значения
Общие возвращаемые значения описаны в этом месте, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| deregistration_delay_timeout_seconds целое число | при состоянии present | Время ожидания Elastic Load Balancing перед изменением состояния дерегистрируемого целевого объекта с состояния draining на unused. Пример: 300 |
| health_check_interval_seconds целое число | при состоянии present | Приблизительное время в секундах между проверками работоспособности отдельного целевого объекта. Пример: 30 |
| health_check_path строка | при состоянии present | Место назначения запроса проверки работоспособности. Пример: /index.html |
| health_check_port строка | при состоянии present | Порт для подключения к целевому объекту. Пример: traffic-port |
| health_check_protocol строка | при состоянии present | Протокол для подключения к целевому объекту. Пример: HTTP |
| health_check_timeout_seconds целое число | при состоянии present | Время в секундах, по истечении которого отсутствие ответа означает неудачную проверку работоспособности. Пример: 5 |
| healthy_threshold_count целое число | при состоянии present | Количество последовательных успешных проверок работоспособности, необходимых для перевода неработающего целевого объекта в состояние работоспособности. Пример: 5 |
| load_balancer_arns список | при состоянии present | Имена Amazon Resource Name (ARN) балансировщиков нагрузки, которые маршрутизируют трафик к этой целевой группе. |
| matcher словарь | при состоянии present | HTTP-коды, используемые для проверки успешного ответа от целевого объекта. Пример: {'http_code': '200'} |
| port целое число | при состоянии present | Порт, на котором слушают целевые объекты. Пример: 80 |
| protocol строка | при состоянии present | Протокол для маршрутизации трафика к целевым объектам. Пример: HTTP |
| stickiness_enabled булево | при состоянии present | Указывает, включены ли навязчивые сессии. Пример: True |
| stickiness_lb_cookie_duration_seconds целое число | при состоянии present | Период времени в секундах, в течение которого запросы от клиента должны маршрутизироваться к одному и тому же целевому объекту. Пример: 86400 |
| stickiness_type строка | при состоянии present | Тип навязчивых сессий. Пример: lb_cookie |
| tags словарь | при состоянии present | Теги, прикреплённые к целевой группе. Пример: { 'Tag': 'Пример' } |
| target_group_arn строка | при состоянии present | Amazon Resource Name (ARN) целевой группы. Пример: arn:aws:elasticloadbalancing:ap-southeast-2:01234567890:targetgroup/mytargetgroup/aabbccddee0044332211 |
| target_group_name строка | при состоянии present | Название целевой группы. Пример: mytargetgroup |
| unhealthy_threshold_count целое число | при состоянии present | Количество последовательных сбоев проверок работоспособности, необходимое для признания целевого объекта неработоспособным. Пример: 2 |
| vpc_id строка | при состоянии present | Идентификатор VPC для целевых объектов. Пример: vpc-0123456 |
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Rob White (@wimnat)
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 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/elb_target_group_module.html