Spec-Zone.ru › Ansible 2.10

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
строка
    Варианты:
  • http
  • https
  • tcp
  • tls
  • udp
  • tcp_udp
  • HTTP
  • HTTPS
  • TCP
  • TLS
  • UDP
  • TCP_UDP
Протокол, используемый балансировщиком нагрузки при проверке состояния целей.
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
строка
    Варианты:
  • http
  • https
  • tcp
  • tls
  • udp
  • tcp_udp
  • HTTP
  • HTTPS
  • TCP
  • TLS
  • UDP
  • TCP_UDP
Протокол для маршрутизации трафика к целевым объектам. Требуется, когда 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
строка / обязательно
    Варианты:
  • present
  • absent
Создание или удаление группы целевых объектов.
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
  • lambda
Тип цели, который необходимо указать при регистрации целей в этой группе целей. Возможные значения: 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

Spec-Zone.ru

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