community.aws.elb_target_group – Управление группой целевых серверов для балансировщика нагрузки приложений или сети
Примечание
Этот плагин входит в состав коллекции community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Для использования в playbook укажите: community.aws.elb_target_group.
В версии 1.0.0: коллекции 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 для вывода общего списка, созданного во время выполнения playbook. Переменная окружения 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 целое число | при состоянии присутствует | Время ожидания Elastic Load Balancing, прежде чем изменить состояние дерегистрируемого целевого сервера с состояния «ожидание» на «неиспользуемый». Пример: 300 |
| health_check_interval_seconds целое число | при состоянии присутствует | Приблизительное время, в секундах, между проверками работоспособности отдельного целевого сервера. Пример: 30 |
| health_check_path строка | при состоянии присутствует | Место назначения запроса проверки работоспособности. Пример: /index.html |
| health_check_port строка | при состоянии присутствует | Порт для подключения к целевому серверу. Пример: traffic-port |
| health_check_protocol строка | при состоянии присутствует | Протокол для подключения к целевому серверу. Пример: HTTP |
| health_check_timeout_seconds целое число | при состоянии присутствует | Время, в секундах, в течение которого отсутствие ответа означает неисправность проверки работоспособности. Пример: 5 |
| healthy_threshold_count целое число | при состоянии присутствует | Количество последовательных успешных проверок работоспособности, необходимых для того, чтобы считать неисправный целевой сервер исправным. Пример: 5 |
| load_balancer_arns список / элементы=строка | при состоянии присутствует | Amazon Resource Names (ARN) балансировщиков нагрузки, которые направляют трафик на эту группу целевых серверов. |
| matcher словарь | при состоянии присутствует | HTTP-коды, используемые при проверке успешного ответа от целевого сервера. Пример: {'http_code': '200'} |
| port целое число | при состоянии присутствует | Порт, на котором слушают целевые серверы. Пример: 80 |
| protocol строка | при состоянии присутствует | Протокол для маршрутизации трафика к целевым серверам. Пример: HTTP |
| stickiness_enabled boolean | при состоянии присутствует | Указывает, включены ли навязчивые сессии. Пример: True |
| stickiness_lb_cookie_duration_seconds целое число | при состоянии присутствует | Период времени, в секундах, в течение которого запросы от клиента должны направляться на один и тот же целевой сервер. Пример: 86400 |
| stickiness_type строка | при состоянии присутствует | Тип навязчивых сессий. Пример: lb_cookie |
| tags словарь | при состоянии присутствует | Теги, присоединенные к группе целевых серверов. Пример: { 'Тег': 'Пример' } |
| target_group_arn строка | при состоянии присутствует | Amazon Resource Name (ARN) группы целевых серверов. Пример: arn:aws:elasticloadbalancing:ap-southeast-2:01234567890:targetgroup/mytargetgroup/aabbccddee0044332211 |
| target_group_name строка | при состоянии присутствует | Название группы целевых серверов. Пример: mytargetgroup |
| unhealthy_threshold_count целое число | при состоянии присутствует | Количество последовательных сбоев проверки работоспособности, необходимых для того, чтобы считать целевой сервер неисправным. Пример: 2 |
| vpc_id строка | при состоянии присутствует | ID VPC для целевых серверов. Пример: vpc-0123456 |
Авторы
- 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.10/collections/community/aws/elb_target_group_module.html