Spec-Zone.ru › Ansible

Модуль community.aws.elb_target_group — управление целевой группой для балансировщика нагрузки уровня приложений или сети

Примечание

Этот модуль входит в коллекцию community.aws (версия 10.1.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.aws. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.aws.elb_target_group.

Добавлено в community.aws 1.0.0

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

Краткое описание

  • Управление целевой группой 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.

Требования

Перечисленные ниже компоненты должны быть установлены на хосте, на котором выполняется этот модуль.

  • python >= 3.6
  • boto3 >= 1.34.0
  • botocore >= 1.34.0

Параметры

Параметр

Комментарии

access_key

aliases: aws_access_key_id, aws_access_key

string

Идентификатор ключа доступа AWS.

Дополнительную информацию о токенах доступа см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменные среды AWS_ACCESS_KEY_ID или AWS_ACCESS_KEY в порядке убывания предпочтительности.

Параметры aws_access_key и profile являются взаимоисключающими.

Псевдоним aws_access_key_id добавлен в выпуске 5.1.0 для единообразия с SDK AWS botocore.

aws_ca_bundle

path

Путь к пакету сертификатов CA, используемому для проверки SSL-сертификатов.

Также можно использовать переменную среды AWS_CA_BUNDLE.

aws_config

dictionary

Словарь для изменения конфигурации botocore.

Параметры описаны в документации AWS https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.

debug_botocore_endpoint_logs

boolean

Используйте регистратор botocore.endpoint для анализа уникальных (а не общего числа) вызовов API "resource:action", выполненных во время задачи; набор вызовов выводится в ключ resource_actions результатов задачи. Используйте обработчик обратных вызовов aws_resource_action, чтобы вывести общий список вызовов, выполненных в ходе плейбука.

Также можно использовать переменную среды ANSIBLE_DEBUG_BOTOCORE_LOGS.

Варианты:

  • false ← (по умолчанию)
  • true

deregistration_connection_termination

boolean

добавлено в community.aws 3.1.0

Указывает, завершает ли балансировщик нагрузки соединения по истечении времени ожидания отмены регистрации.

Этот параметр поддерживается только при подключении к сетевому балансировщику нагрузки (NLB).

Варианты:

  • false ← (по умолчанию)
  • true

deregistration_delay_timeout

integer

Время ожидания Elastic Load Balancing перед изменением состояния отменяющей регистрацию цели с «освобождается» на «не используется». Диапазон — от 0 до 3600 секунд.

endpoint_url

aliases: aws_endpoint_url

string

URL для подключения вместо конечных точек AWS по умолчанию. Хотя этот параметр можно использовать для подключения к другим сервисам, совместимым с AWS, коллекции amazon.aws и community.aws тестируются только с AWS.

Также можно использовать переменную среды AWS_URL.

health_check_interval

integer

Примерный интервал в секундах между проверками работоспособности отдельной цели.

health_check_path

string

Путь для проверки связи, указывающий на назначение запросов проверки работоспособности на целях. Чтобы задать проверку работоспособности, необходимо определить путь.

Требуется указать параметр health_check_protocol.

health_check_port

string

Порт, который балансировщик нагрузки использует для проверки работоспособности целей. Можно указать «traffic-port», чтобы использовать порт цели.

Если параметр не задан, по умолчанию используется порт, на котором каждая цель получает трафик от балансировщика нагрузки.

health_check_protocol

string

Протокол, который балансировщик нагрузки использует для проверки работоспособности целей.

Варианты:

  • "http"
  • "https"
  • "tcp"
  • "tls"
  • "udp"
  • "tcp_udp"
  • "HTTP"
  • "HTTPS"
  • "TCP"
  • "TLS"
  • "UDP"
  • "TCP_UDP"

health_check_timeout

integer

Время в секундах, в течение которого отсутствие ответа от цели означает неудачную проверку работоспособности.

healthy_threshold_count

integer

Количество последовательных успешных проверок работоспособности, необходимое, чтобы признать неработающую цель работоспособной.

load_balancing_algorithm_type

string

добавлено в community.aws 3.2.0

Тип алгоритма балансировки нагрузки.

Изменение алгоритма балансировки нагрузки поддерживается только при использовании балансировщиков нагрузки приложений (ALB).

Если параметр не задан, AWS по умолчанию использует round_robin.

Варианты:

  • "round_robin"
  • "least_outstanding_requests"

modify_targets

boolean

Изменять ли существующие цели в группе, чтобы они соответствовали переданным модулю.

Варианты:

  • false
  • true ← (по умолчанию)

name

string / обязательный

Имя целевой группы.

port

integer

Порт, на котором цели получают трафик. Этот порт используется, если при регистрации цели не указан другой порт.

Обязателен, если state имеет значение present, а target_type — instance, ip или alb.

preserve_client_ip_enabled

boolean

добавлено в community.aws 2.1.0

Указывает, включено ли сохранение IP-адреса клиента.

По умолчанию сохранение отключено, если тип целевой группы — адрес ip, а протокол целевой группы — tcp или tls. В противном случае по умолчанию оно включено. Сохранение IP-адреса клиента нельзя отключить для целевых групп udp и tcp_udp.

preserve_client_ip_enabled поддерживается только сетевыми балансировщиками нагрузки.

Варианты:

  • false
  • true

profile

aliases: aws_profile

string

Именованный профиль AWS для аутентификации.

Дополнительную информацию об именованных профилях см. в документации AWS https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html.

Также можно использовать переменную среды AWS_PROFILE.

Параметр profile взаимоисключающий с параметрами aws_access_key, aws_secret_key и session_token.

protocol

string

Протокол, используемый для маршрутизации трафика к целям.

Обязателен, если state имеет значение present, а target_type — instance, ip или alb.

Варианты:

  • "http"
  • "https"
  • "tcp"
  • "tls"
  • "udp"
  • "tcp_udp"
  • "HTTP"
  • "HTTPS"
  • "TCP"
  • "TLS"
  • "UDP"
  • "TCP_UDP"

protocol_version

string

добавлено в community.aws 5.1.0

Задает версию протокола.

Параметр protocol_version неизменяемый и не может быть изменен при обновлении elb_target_group.

Варианты:

  • "GRPC"
  • "HTTP1"
  • "HTTP2"

proxy_protocol_v2_enabled

boolean

добавлено в community.aws 2.1.0

Указывает, включен ли Proxy Protocol версии 2.

Значение — true или false.

proxy_protocol_v2_enabled поддерживается только сетевыми балансировщиками нагрузки.

Варианты:

  • false
  • true

purge_tags

boolean

Если задано purge_tags=true и указано tags, существующие теги будут удалены из ресурса, чтобы он точно соответствовал определению параметра tags.

Если параметр tags не задан, теги не будут изменены, даже если указано purge_tags=True.

Ключи тегов, начинающиеся с aws:, зарезервированы Amazon и не могут быть изменены. Поэтому они игнорируются при обработке параметра purge_tags. Дополнительную информацию см. в документации Amazon https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions.

Варианты:

  • false
  • true ← (по умолчанию)

region

aliases: aws_region

string

Регион AWS.

Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется.

Также можно использовать переменную среды AWS_REGION.

Дополнительную информацию см. в документации Amazon AWS http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region.

secret_key

aliases: aws_secret_access_key, aws_secret_key

string

Секретный ключ доступа AWS.

Дополнительную информацию о токенах доступа см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменные среды AWS_SECRET_ACCESS_KEY или AWS_SECRET_KEY в порядке убывания предпочтительности.

Параметры secret_key и profile являются взаимоисключающими.

Псевдоним aws_secret_access_key добавлен в выпуске 5.1.0 для единообразия с SDK AWS botocore.

session_token

aliases: aws_session_token

string

Токен сеанса AWS STS для временных учетных данных.

Дополнительную информацию о токенах доступа см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменную среды AWS_SESSION_TOKEN.

Параметры session_token и profile являются взаимоисключающими.

state

string / обязательный

Создать или удалить целевую группу.

Варианты:

  • "present"
  • "absent"

stickiness_app_cookie_duration

integer

добавлено в community.aws 1.5.0

Период времени в секундах, в течение которого запросы клиента должны направляться к одной и той же цели. По истечении этого периода cookie, созданная приложением, считается устаревшей. Диапазон — от 1 секунды до 1 недели (604800 секунд).

stickiness_app_cookie_name

string

добавлено в community.aws 1.5.0

Имя cookie приложения. Обязателен, если stickiness_type=app_cookie.

stickiness_enabled

boolean

Указывает, включены ли сеансы с привязкой к цели.

Варианты:

  • false
  • true

stickiness_lb_cookie_duration

integer

Период времени в секундах, в течение которого запросы клиента должны направляться к одной и той же цели. По истечении этого периода cookie, созданная балансировщиком нагрузки, считается устаревшей. Диапазон — от 1 секунды до 1 недели (604800 секунд).

stickiness_type

string

Тип привязки сеансов.

Допустимые значения: lb_cookie, app_cookie или source_ip.

Если параметр не задан, AWS по умолчанию использует lb_cookie для балансировщиков нагрузки приложений или source_ip для сетевых балансировщиков нагрузки.

successful_response_codes

string

Коды HTTP, используемые для проверки успешного ответа от цели.

Принимает несколько значений (например, «200,202») или диапазон значений (например, «200-299»).

Требуется указать параметр health_check_protocol.

tags

aliases: resource_tags

dictionary

Словарь тегов, применяемых к ресурсу.

Если параметр tags не задан, теги не будут изменены.

target_type

string

Тип цели, который необходимо указать при регистрации целей в этой целевой группе. Возможные значения: instance (цели задаются идентификатором экземпляра), ip (цели задаются IP-адресом), lambda (цель задается ARN) или alb (цель задается ARN). Обратите внимание: нельзя указать цели для целевой группы более чем одного типа. Типы целей lambda и alb допускают только одну цель. Если указано несколько целей, используется только первая; все остальные игнорируются. Если тип цели — 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.

Варианты:

  • "instance"
  • "ip"
  • "lambda"
  • "alb"

targets

list / elements=dictionary

Список целей, назначаемых целевой группе. По умолчанию параметр содержит пустой список. Если не задать параметр «modify_targets», все существующие цели будут удалены из группы. Список должен содержать параметры Id и Port. Подробности см. в примерах.

unhealthy_threshold_count

integer

Количество последовательных неудачных проверок работоспособности, необходимое, чтобы признать цель неработоспособной.

validate_certs

boolean

Если задано значение false, SSL-сертификаты при взаимодействии с API AWS проверяться не будут.

Настоятельно не рекомендуется задавать validate_certs=false; вместо этого рассмотрите возможность указать aws_ca_bundle.

Варианты:

  • false
  • true ← (по умолчанию)

vpc_id

string

Идентификатор виртуального частного облака (VPC).

Обязателен, если state имеет значение present, а target_type — instance, ip или alb.

wait

boolean

Ожидать ли готовности целевой группы.

Варианты:

  • false ← (по умолчанию)
  • true

wait_timeout

integer

Время ожидания целевой группы.

По умолчанию: 200

Примечания

Примечание

  • После создания целевой группы при последующих вызовах можно изменить только её проверку работоспособности
  • Внимание: Для модулей переменные среды и файлы конфигурации считываются из контекста Ansible «host», а не «controller». Поэтому может потребоваться явно скопировать файлы на «host». Для плагинов поиска и подключения переменные среды и файлы конфигурации считываются из контекста Ansible «controller», а не «host».
  • Используемый Ansible пакет AWS SDK (boto3) также может считывать значения по умолчанию для учётных данных и других параметров, таких как регион, из файлов конфигурации в контексте Ansible «host» (обычно ~/.aws/credentials). Дополнительные сведения см. по адресу https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.

Примеры

# 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: Create a target group with protocol_version 'GRPC'
  community.aws.elb_target_group:
    name: mytargetgroup
    protocol: http
    port: 80
    vpc_id: vpc-01234567
    protocol_version: GRPC
    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_connection_termination

boolean

Указывает, разрывает ли балансировщик нагрузки соединения по истечении времени ожидания отмены регистрации.

Возвращается: если состояние — present

Пример: true

deregistration_delay_timeout_seconds

integer

Время, которое Elastic Load Balancing ожидает, прежде чем изменить состояние цели, отменяющей регистрацию, с draining на unused.

Возвращается: если состояние — present

Пример: 300

health_check_interval_seconds

integer

Примерный интервал в секундах между проверками работоспособности отдельной цели.

Возвращается: если состояние — present

Пример: 30

health_check_path

string

Адрес назначения для запроса проверки работоспособности.

Возвращается: если состояние — present

Пример: "/index.html"

health_check_port

string

Порт для подключения к цели.

Возвращается: если состояние — present

Пример: "traffic-port"

health_check_protocol

string

Протокол для подключения к цели.

Возвращается: если состояние — present

Пример: "HTTP"

health_check_timeout_seconds

integer

Время в секундах, в течение которого отсутствие ответа считается неудачной проверкой работоспособности.

Возвращается: если состояние — present

Пример: 5

healthy_threshold_count

integer

Количество последовательных успешных проверок работоспособности, необходимых, чтобы считать неработоспособную цель работоспособной.

Возвращается: если состояние — present

Пример: 5

load_balancer_arns

list / elements=string

Amazon Resource Name (ARN) балансировщиков нагрузки, направляющих трафик в эту целевую группу.

Возвращается: если состояние — present

Пример: []

load_balancing_algorithm_type

string

добавлено в community.aws 3.2.0

Тип используемого алгоритма балансировки нагрузки.

Возвращается: если состояние — present

Пример: "least_outstanding_requests"

matcher

dictionary

Коды HTTP, используемые для проверки успешного ответа от цели.

Возвращается: если состояние — present

Пример: {"http_code": "200"}

port

integer

Порт, на котором прослушиваются цели.

Возвращается: если состояние — present

Пример: 80

protocol

string

Протокол для маршрутизации трафика к целям.

Возвращается: если состояние — present

Пример: "HTTP"

stickiness_enabled

boolean

Указывает, включена ли привязка сеансов к целевому серверу.

Возвращается: если состояние — present

Пример: true

stickiness_lb_cookie_duration_seconds

integer

Период времени в секундах, в течение которого запросы клиента должны направляться к одной и той же цели.

Возвращается: если состояние — present

Пример: 86400

stickiness_type

string

Тип привязки сеансов к целевому серверу.

Возвращается: если состояние — present

Пример: "lb_cookie"

tags

dictionary

Теги, назначенные целевой группе.

Возвращается: если состояние — present

Пример: {"Tag": "Example"}

target_group_arn

string

Amazon Resource Name (ARN) целевой группы.

Возвращается: если состояние — present

Пример: "arn:aws:elasticloadbalancing:ap-southeast-2:123456789012:targetgroup/mytargetgroup/aabbccddee0044332211"

target_group_name

string

Имя целевой группы.

Возвращается: если состояние — present

Пример: "mytargetgroup"

unhealthy_threshold_count

integer

Количество последовательных неудачных проверок работоспособности, необходимых, чтобы считать цель неработоспособной.

Возвращается: если состояние — present

Пример: 2

vpc_id

string

Идентификатор VPC для целей.

Возвращается: если состояние — present

Пример: "vpc-0123456"

Авторы

  • Rob White (@wimnat)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Связь

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

Spec-Zone.ru

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