Spec-Zone.ru › Ansible 2.11

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
строка
    Варианты:
  • 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
целое число
при состоянии 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

Spec-Zone.ru

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