Spec-Zone.ru › Ansible

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

Примечание

Этот модуль является частью коллекции community.aws (версия 8.0.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.26.0
  • botocore >= 1.29.0

Параметры

Параметр

Комментарии

access_key

aliases: aws_access_key_id, aws_access_key, ec2_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 или EC2_ACCESS_KEY также могут использоваться в порядке убывания предпочтения.

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

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

Псевдоним ec2_access_key устарел и будет удален в релизе после 2024-12-01.

Поддержка переменной среды EC2_ACCESS_KEY устарела и будет удалена в релизе после 2024-12-01.

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 регистратор для анализа уникальных (а не общих) "resource:action" вызовов API, сделанных во время задачи, выводя набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action для вывода в общий список, сделанный во время playbook.

Переменная среды 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: ec2_url, aws_endpoint_url, s3_url

string

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

Переменные среды AWS_URL или EC2_URL также могут использоваться в порядке убывания предпочтения.

Псевдонимы ec2_url и s3_url устарели и будут удалены в релизе после 2024-12-01.

Поддержка переменной среды EC2_URL устарела и будет удалена в релизе после 2024-12-01.

health_check_interval

integer

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

health_check_path

string

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

Требуется установка параметра 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

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

Choices:

  • false
  • true ← (default)

name

string / required

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

port

integer

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

Обязательно, когда state равен present и target_type равен instance, ip, или alb.

preserve_client_ip_enabled

boolean

added in community.aws 2.1.0

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

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

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

Choices:

  • 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 и security_token.

protocol

string

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

Обязательно, когда state равен present и target_type равен instance, ip, или alb.

Choices:

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

protocol_version

string

added in community.aws 5.1.0

Указывает версию протокола.

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

Choices:

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

proxy_protocol_v2_enabled

boolean

added in community.aws 2.1.0

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

Значение равно true или false.

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

Choices:

  • 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.

Choices:

  • false
  • true ← (default)

region

aliases: aws_region, ec2_region

string

Регион AWS для использования.

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

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

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

Псевдоним ec2_region устарел и будет удален в релизе после 2024-12-01

Поддержка переменной среды EC2_REGION устарела и будет удалена в релизе после 2024-12-01.

secret_key

aliases: aws_secret_access_key, aws_secret_key, ec2_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, или EC2_SECRET_KEY в порядке убывания предпочтения.

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

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

Псевдоним ec2_secret_key устарел и будет удален в релизе после 2024-12-01.

Поддержка переменной среды EC2_SECRET_KEY устарела и будет удалена в релизе после 2024-12-01.

session_token

aliases: aws_session_token, security_token, aws_security_token, access_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, AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN также могут использоваться в порядке убывания предпочтения.

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

Псевдонимы aws_session_token и session_token были добавлены в релизе 3.2.0, при этом параметр был переименован из security_token в session_token в релизе 6.0.0.

Псевдонимы security_token, aws_security_token и access_token устарели и будут удалены в релизе после 2024-12-01.

Поддержка переменных среды EC2_SECRET_KEY и AWS_SECURITY_TOKEN устарела и будет удалена в релизе после 2024-12-01.

state

string / required

Создать или удалить группу целевых объектов.

Варианты:

  • "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 «хост», а не «контроллер». В связи с этим, файлы могут потребоваться скопировать явно на «хост». Для плагинов поиска и подключения переменные среды и файлы конфигурации считываются из контекста Ansible «контроллер», а не «хост».
  • AWS SDK (boto3), используемый Ansible, также может считывать значения по умолчанию для учетных данных и других настроек, таких как регион, из файлов конфигурации в контексте Ansible «хост» (как правило, ~/.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

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

Возвращается: когда состояние присутствует

Пример: true

deregistration_delay_timeout_seconds

integer

Время, в течение которого Elastic Load Balancing ожидает, прежде чем изменить состояние отменяемой цели с «удаление» на «неиспользуется».

Возвращается: когда состояние присутствует

Пример: 300

health_check_interval_seconds

integer

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

Возвращается: когда состояние присутствует

Пример: 30

health_check_path

string

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

Возвращается: когда состояние присутствует

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

health_check_port

string

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

Возвращается: когда состояние присутствует

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

health_check_protocol

string

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

Возвращается: когда состояние присутствует

Пример: "HTTP"

health_check_timeout_seconds

integer

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

Возвращается: когда состояние присутствует

Пример: 5

healthy_threshold_count

integer

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

Возвращается: когда состояние присутствует

Пример: 5

load_balancer_arns

list / elements=string

Универсальные имена ресурсов (ARN) балансировщиков нагрузки, которые направляют трафик в эту группу целей.

Возвращается: когда состояние присутствует

Пример: []

load_balancing_algorithm_type

string

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

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

Возвращается: когда состояние присутствует

Пример: "least_outstanding_requests"

matcher

dictionary

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

Возвращается: когда состояние присутствует

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

port

integer

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

Возвращается: когда состояние присутствует

Пример: 80

protocol

string

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

Возвращается: когда состояние присутствует

Пример: "HTTP"

stickiness_enabled

boolean

Указывает, включены ли липкие сессии.

Возвращается: когда состояние присутствует

Пример: true

stickiness_lb_cookie_duration_seconds

integer

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

Возвращается: когда состояние присутствует

Пример: 86400

stickiness_type

string

Тип липких сессий.

Возвращается: когда состояние присутствует

Пример: "lb_cookie"

метки

словарь

Метки, прикреплённые к группе целевых серверов.

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

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

target_group_arn

строка

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

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

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

target_group_name

строка

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

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

Пример: "mytargetgroup"

unhealthy_threshold_count

целое число

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

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

Пример: 2

vpc_id

строка

Идентификатор VPC для целевых серверов.

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

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

Авторы

  • Rob White (@wimnat)

Ссылки на сборку

  • Отслеживание проблем
  • Репозиторий (источники)
  • Общение

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

Spec-Zone.ru

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