community.aws.elb_target_group – Управление группой целевых серверов для балансировщика нагрузки приложений или сети
Примечание
Этот плагин является частью коллекции community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Для использования в книге задач укажите: community.aws.elb_target_group.
Добавлена в версии 1.0.0: of community.aws
Обзор
- Управление группой целевых серверов балансировщика нагрузки 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. Если параметр 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. |
| deregistration_delay_timeout целое число | Время ожидания Elastic Load Balancing перед изменением состояния дерегистрируемого целевого сервера со статуса "остановка" на "не используется". Диапазон значений: 0-3600 секунд. | |
| ec2_url строка | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если не используется регион. Если не задан, используется значение переменной среды EC2_URL, если она существует. псевдонимы: aws_endpoint_url, endpoint_url | |
| health_check_interval целое число | Приблизительное время в секундах между проверками работоспособности отдельного целевого сервера. | |
| health_check_path строка | Путь пинга, который является местом назначения на целевых серверах для проверок работоспособности. Путь должен быть определен для настройки проверки работоспособности. Требует параметра health_check_protocol. | |
| 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. Использование profile переопределяет aws_access_key, aws_secret_key и security_token, и поддержка одновременного использования их с profile устарела. aws_access_key, aws_secret_key и security_token будут взаимоисключающими с profile после 2022-06-01. псевдонимы: aws_profile | |
| 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. Если параметр profile задан, этот параметр игнорируется. Использование параметров security_token и profile одновременно устарело и будет исключено после 2022-06-01. псевдонимы: aws_security_token, access_token | |
| state строка / обязательно |
| Создание или уничтожение группы целевых серверов. |
| stickiness_enabled логический тип |
| Указывает, включены ли сеансы с сохранением состояния. |
| stickiness_lb_cookie_duration целое число | Период времени в секундах, в течение которого запросы от клиента должны маршрутизироваться к тому же целевому серверу. По истечении этого периода времени cookie, сгенерированный балансировщиком нагрузки, считается устаревшим. Диапазон значений: 1 секунда до 1 недели (604800 секунд). | |
| stickiness_type строка | Тип сеансов с сохранением состояния. Если не задано, AWS по умолчанию использует lb_cookie для Application Load Balancers или source_ip для Network Load Balancers. | |
| successful_response_codes строка | HTTP-коды, используемые при проверке успешного ответа от целевого сервера. Поддерживает несколько значений (например, "200,202") или диапазон значений (например, "200-299"). Требует параметра health_check_protocol. | |
| tags словарь | Словарь одного или нескольких тегов для назначения группе целевых серверов. | |
| target_type строка |
| Тип целевого сервера, который необходимо указать при регистрации целевых серверов в этой группе. Возможные значения: instance (целевые серверы задаются с помощью идентификатора экземпляра), 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-адреса.Поведение по умолчанию - instance. |
| targets список / элементы=словарь | Список целевых серверов для назначения группе. По умолчанию параметр имеет пустой список. Если не установлен параметр 'modify_targets', все существующие целевые серверы будут удалены из группы. Список должен содержать параметр Id и Port. Подробности см. в примерах. | |
| unhealthy_threshold_count целое число | Количество последовательных сбоев проверки работоспособности, необходимых для того, чтобы считать целевой сервер неработоспособным. |
| validate_certs boolean |
| При установке в «нет», сертификаты SSL для версий boto >= 2.6.0 не будут проверяться. |
| vpc_id строка | Идентификатор виртуальной частной сети (VPC). Требуется, когда состояние равно present. | |
| wait boolean |
| Ожидать ли группу целевых серверов. |
| wait_timeout целое число | По умолчанию: 200 | Время ожидания группы целевых серверов. |
Примечания
Примечание
- После создания группы целевых серверов, только её проверка на работоспособность может быть изменена в последующих вызовах
- Если параметры не установлены в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
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
Примеры
# Note: These examples do not set authentication details, see the AWS Guide for details.
- name: Create a target group with a default health check
community.aws.elb_target_group:
name: mytargetgroup
protocol: http
port: 80
vpc_id: vpc-01234567
state: present
- name: Modify the target group with a custom health check
community.aws.elb_target_group:
name: mytargetgroup
protocol: http
port: 80
vpc_id: vpc-01234567
health_check_protocol: http
health_check_path: /health_check
health_check_port: 80
successful_response_codes: 200
health_check_interval: 15
health_check_timeout: 3
healthy_threshold_count: 4
unhealthy_threshold_count: 3
state: present
- name: Delete a target group
community.aws.elb_target_group:
name: mytargetgroup
state: absent
- name: Create a target group with instance targets
community.aws.elb_target_group:
name: mytargetgroup
protocol: http
port: 81
vpc_id: vpc-01234567
health_check_protocol: http
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
- name: Create a target group with IP address targets
community.aws.elb_target_group:
name: mytargetgroup
protocol: http
port: 81
vpc_id: vpc-01234567
health_check_protocol: http
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 lambda function and third, add the target
# to the target group
- name: first, create empty target group
community.aws.elb_target_group:
name: my-lambda-targetgroup
target_type: lambda
state: present
modify_targets: False
register: out
- name: second, allow invoke of the lambda
community.aws.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
community.aws.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, прежде чем изменить состояние отключаемого целевого сервера с состояния «в режиме ожидания» на «неиспользуемый». Пример: 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 | Имена ресурсов AWS (ARN) балансировщиков нагрузки, которые направляют трафик на эту группу целевых серверов. |
| matcher словарь | при состоянии present | HTTP-коды для проверки успешного ответа от целевого сервера. Пример: {'http_code': '200'} |
| port целое число | при состоянии present | Порт, на котором слушают целевые серверы. Пример: 80 |
| protocol строка | при состоянии present | Протокол для маршрутизации трафика к целевым серверам. Пример: HTTP |
| stickiness_enabled boolean | при состоянии present | Указывает, включены ли липкие сессии. Пример: True |
| stickiness_lb_cookie_duration_seconds целое число | при состоянии present | Срок действия cookie балансировщика нагрузки в секундах, в течение которого запросы клиента должны направляться к одному и тому же целевому серверу. Пример: 86400 |
| stickiness_type строка | при состоянии present | Тип липких сессий. Пример: lb_cookie |
| tags словарь | при состоянии present | Теги, прикрепленные к группе целевых серверов. Пример: { 'Тег': 'Пример' } |
| target_group_arn строка | при состоянии present | Идентификатор ресурса AWS (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 |
Авторы
- Rob White (@wimnat)
© 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/elb_target_group_module.html