Модуль amazon.aws.elb_application_lb – Управление балансировщиком нагрузки приложений
Примечание
Этот модуль является частью коллекции amazon.aws (версия 8.2.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install amazon.aws. Для использования этого модуля требуются дополнительные зависимости. Подробности см. в разделе Требования.
Чтобы использовать его в книге задач, укажите: amazon.aws.elb_application_lb.
Новая функция в amazon.aws 5.0.0
Обзор
- Управление балансировщиком нагрузки Elastic Load Balancer AWS приложений. Подробнее см. https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/.
- Этот модуль был первоначально добавлен в
community.awsв релизе 1.0.0.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- 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 и profile являются взаимоисключающими. Псевдоним aws_access_key_id был добавлен в версии 5.1.0 для согласованности с AWS botocore SDK. Псевдоним ec2_access_key устарел и будет удален в версии после 2024-12-01. Поддержка переменной среды |
access_logs_enabled boolean | Включать ли журналы доступа. При установке, Варианты:
|
access_logs_s3_bucket string | Имя S3-бакета для журналов доступа. Бакет должен существовать в том же регионе, что и балансировщик нагрузки, и иметь политику бакета, которая предоставляет Elastic Load Balancing разрешение на запись в бакет. Обязательно, если включены журналы доступа в Amazon S3. При установке, |
access_logs_s3_prefix string | Префикс для местоположения журнала в S3-бакете. Если вы не укажете префикс, журналы доступа будут храниться в корне бакета. Не может начинаться или заканчиваться слешем. |
aws_ca_bundle path | Расположение пакета CA, используемого при проверке SSL-сертификатов. Переменная среды |
aws_config dictionary | Словарь для изменения конфигурации botocore. Параметры можно найти в документации AWS https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
debug_botocore_endpoint_logs boolean | Использовать Переменная среды Варианты:
|
deletion_protection boolean | Указывает, включена ли защита от удаления для ALB. По умолчанию Варианты:
|
endpoint_url aliases: ec2_url, aws_endpoint_url, s3_url string | URL для подключения вместо конечных точек AWS по умолчанию. Хотя это можно использовать для подключения к другим совместимым с AWS службам, коллекции amazon.aws и community.aws тестируются только с AWS. Переменные среды Псевдонимы ec2_url и s3_url устарели и будут удалены в версии после 2024-12-01. Поддержка переменной среды |
http2 boolean | Указывает, следует ли включать маршрутизацию HTTP2. По умолчанию Варианты:
|
http_desync_mitigation_mode string добавлено в community.aws 3.2.0 | Определяет, как балансировщик нагрузки обрабатывает запросы, которые могут представлять угрозу безопасности для приложения. По умолчанию Варианты:
|
http_drop_invalid_header_fields boolean добавлено в community.aws 3.2.0 | Указывает, удаляются ли заголовки HTTP с неверными полями заголовков балансировщиком нагрузки По умолчанию Варианты:
|
http_x_amzn_tls_version_and_cipher_suite boolean добавлено в community.aws 3.2.0 | Указывает, добавляются ли два заголовка к запросу клиента перед отправкой его к цели. По умолчанию Варианты:
|
http_xff_client_port boolean добавлено в community.aws 3.2.0 | Указывает, должен ли заголовок X-Forwarded-For сохранять исходный порт, который клиент использовал для подключения к балансировщику нагрузки. По умолчанию Варианты:
|
idle_timeout integer | Количество секунд ожидания перед закрытием неактивного соединения. |
ip_address_type string | Устанавливает тип IP-адресов, используемых подсетями указанного балансировщика приложений. Варианты:
|
listeners list / elements=dictionary | Список словарей, содержащих слушатели для подключения к ALB. Подробности словаря см. в примерах. Обратите внимание, что ключи слушателей используют регистр CamelCase. |
|
Certificates list / elements=dictionary |
Сертификат SSL-сервера. |
|
CertificateArn string |
Amazon Resource Name (ARN) сертификата. |
|
DefaultActions list / elements=dictionary / обязательно |
Действия по умолчанию для слушателя. |
|
TargetGroupArn string |
Amazon Resource Name (ARN) целевой группы. Взаимоисключающее с |
|
TargetGroupName string |
Имя целевой группы. Взаимоисключающее с |
|
Type string |
Тип действия. |
|
Port integer / обязательно |
Порт, на котором балансировщик нагрузок прослушивает соединения. |
|
Protocol string / обязательно |
Протокол для соединений от клиентов к балансировщику нагрузок. |
|
Rules list / elements=dictionary |
Список правил слушателя ALB. Полную документацию по возможным условиям и действиям см. в документации boto3: Помните, что AWS использует значения по умолчанию для параметров, которые не запрашиваются. Например, для |
|
Actions list / elements=dictionary |
Действия, которые применяются, если выполнены все условия правила. |
|
Conditions list / elements=dictionary |
Условия, которые должны быть выполнены для применения действий. |
|
Priority integer |
Приоритет правила. |
|
SslPolicy string |
Политика безопасности, определяющая поддерживаемые шифры и протоколы. |
name string / обязательно | Имя балансировщика нагрузок. Это имя должно быть уникальным в вашей учетной записи AWS, может содержать не более 32 символов, содержать только буквенно-цифровые символы или дефисы и не начинаться и не заканчиваться дефисом. |
profile алиасы: aws_profile string | Используемый именованный профиль AWS для аутентификации. Подробнее об именованных профилях см. в документации AWS https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Можно также использовать переменную среды |
purge_listeners boolean | |
purge_rules boolean | При установке в значение Варианты:
|
purge_tags boolean | Если purge_tags=true и tags задано, существующие теги будут удалены из ресурса, чтобы точно соответствовать тому, что определено параметром tags. Если параметр tags не задан, теги не будут изменены, даже если purge_tags=True. Ключи тегов, начинающиеся с Варианты:
|
region псевдонимы: aws_region, ec2_region строка | AWS регион для использования. Для глобальных служб, таких как IAM, Route53 и CloudFront, region игнорируется. Также могут быть использованы переменные среды Дополнительную информацию см. в документации Amazon AWS по http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. Псевдоним Поддержка переменной среды |
scheme строка | Интернет-ориентированный или внутренний балансировщик нагрузки. Схему ALB нельзя изменить после создания. Варианты:
|
secret_key псевдонимы: aws_secret_access_key, aws_secret_key, ec2_secret_key строка | Секретный ключ доступа AWS. Дополнительную информацию об маркерах доступа см. в документации AWS по https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также могут быть использованы переменные среды Параметры secret_key и profile взаимоисключающие. Псевдоним aws_secret_access_key был добавлен в релизе 5.1.0 для согласованности с SDK AWS botocore. Псевдоним ec2_secret_key устарел и будет удален в релизе после 2024-12-01. Поддержка переменной среды |
security_groups список / элементы=строка | Список имен или идентификаторов групп безопасности, которые необходимо назначить балансировщику нагрузки. Требуется, если Если |
session_token псевдонимы: aws_session_token, security_token, aws_security_token, access_token строка | Маркер сеанса AWS STS для использования с временными учетными данными. Дополнительную информацию об маркерах доступа см. в документации AWS по https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также могут быть использованы переменные среды Параметры 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. Поддержка переменных среды |
state строка | Создать или уничтожить балансировщик нагрузки. Варианты:
|
subnets список / элементы=строка | Список идентификаторов подсетей, которые необходимо подключить к балансировщику нагрузки. Вы можете указать только одну подсеть на зону доступности. Вам необходимо указать подсети как минимум из двух зон доступности. Требуется, если |
tags псевдонимы: resource_tags словарь | Словарь, представляющий теги, которые необходимо применить к ресурсу. Если параметр tags не задан, теги не будут изменены. |
validate_certs boolean | При значении Установка validate_certs=false настоятельно не рекомендуется. В качестве альтернативы, рассмотрите возможность настройки aws_ca_bundle вместо этого. Варианты:
|
waf_fail_open boolean добавлен в community.aws 3.2.0 | Указывает, следует ли разрешить балансировщику нагрузки AWS, поддерживающему AWS WAF, перенаправлять запросы к целевым серверам, если он не может перенаправить запрос к AWS WAF. По умолчанию Варианты:
|
wait boolean | Ожидать, пока балансировщик нагрузки не перейдет в состояние «активный», прежде чем завершить выполнение. Проверка состояния выполняется каждые 15 секунд, пока не будет достигнуто успешное состояние. Ошибка возвращается после 40 неудачных проверок. Варианты:
|
wait_timeout integer | Время в секундах, используемое в сочетании с |
Примечания
Примечание
- Слушатели сопоставляются по порту. Если порт слушателя изменён, будет создан новый слушатель.
- Правила слушателей сопоставляются по приоритету. Если приоритет правила изменён, будет создано новое правило.
- Внимание: Для модулей переменные окружения и конфигурационные файлы считываются из контекста 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.
# Create an ALB and attach a listener
- amazon.aws.elb_application_lb:
name: myalb
security_groups:
- sg-12345678
- my-sec-group
subnets:
- subnet-012345678
- subnet-abcdef000
listeners:
- Protocol: HTTP # Required. The protocol for connections from clients to the load balancer (HTTP or HTTPS) (case-sensitive).
Port: 80 # Required. The port on which the load balancer is listening.
# The security policy that defines which ciphers and protocols are supported. The default is the current predefined security policy.
SslPolicy: ELBSecurityPolicy-2015-05
Certificates: # The ARN of the certificate
- CertificateArn: arn:aws:iam::123456789012:server-certificate/test.domain.com
DefaultActions:
- Type: forward # Required.
TargetGroupName: # Required. The name of the target group
state: present
# Create an ALB and attach a listener with logging enabled
- amazon.aws.elb_application_lb:
access_logs_enabled: true
access_logs_s3_bucket: mybucket
access_logs_s3_prefix: "logs"
name: myalb
security_groups:
- sg-12345678
- my-sec-group
subnets:
- subnet-012345678
- subnet-abcdef000
listeners:
- Protocol: HTTP # Required. The protocol for connections from clients to the load balancer (HTTP or HTTPS) (case-sensitive).
Port: 80 # Required. The port on which the load balancer is listening.
# The security policy that defines which ciphers and protocols are supported. The default is the current predefined security policy.
SslPolicy: ELBSecurityPolicy-2015-05
Certificates: # The ARN of the certificate
- CertificateArn: arn:aws:iam::123456789012:server-certificate/test.domain.com
DefaultActions:
- Type: forward # Required.
TargetGroupName: # Required. The name of the target group
state: present
# Create an ALB with listeners and rules
- amazon.aws.elb_application_lb:
name: test-alb
subnets:
- subnet-12345678
- subnet-87654321
security_groups:
- sg-12345678
scheme: internal
listeners:
- Protocol: HTTPS
Port: 443
DefaultActions:
- Type: forward
TargetGroupName: test-target-group
Certificates:
- CertificateArn: arn:aws:iam::123456789012:server-certificate/test.domain.com
SslPolicy: ELBSecurityPolicy-2015-05
Rules:
- Conditions:
- Field: path-pattern
Values:
- '/test'
Priority: '1'
Actions:
- TargetGroupName: test-target-group
Type: forward
- Conditions:
- Field: path-pattern
Values:
- "/redirect-path/*"
Priority: '2'
Actions:
- Type: redirect
RedirectConfig:
Host: "#{host}"
Path: "/example/redir" # or /#{path}
Port: "#{port}"
Protocol: "#{protocol}"
Query: "#{query}"
StatusCode: "HTTP_302" # or HTTP_301
- Conditions:
- Field: path-pattern
Values:
- "/fixed-response-path/"
Priority: '3'
Actions:
- Type: fixed-response
FixedResponseConfig:
ContentType: "text/plain"
MessageBody: "This is the page you're looking for"
StatusCode: "200"
- Conditions:
- Field: host-header
Values:
- "hostname.domain.com"
- "alternate.domain.com"
Priority: '4'
Actions:
- TargetGroupName: test-target-group
Type: forward
state: present
# Create an ALB with a listener having multiple listener certificates
- amazon.aws.elb_application_lb:
name: myalb
security_groups:
- sg-12345678
- my-sec-group
subnets:
- subnet-012345678
- subnet-abcdef000
listeners:
- Protocol: HTTP # Required. The protocol for connections from clients to the load balancer (HTTP or HTTPS) (case-sensitive).
Port: 80 # Required. The port on which the load balancer is listening.
# The security policy that defines which ciphers and protocols are supported. The default is the current predefined security policy.
SslPolicy: ELBSecurityPolicy-2015-05
Certificates: # The ARN of the certificate (first certificate in the list will be set as default certificate)
- CertificateArn: arn:aws:iam::123456789012:server-certificate/test.domain.com
- CertificateArn: arn:aws:iam::123456789012:server-certificate/secondtest.domain.com
- CertificateArn: arn:aws:iam::123456789012:server-certificate/thirdtest.domain.com
DefaultActions:
- Type: forward # Required.
TargetGroupName: # Required. The name of the target group
state: present
# Remove an ALB
- amazon.aws.elb_application_lb:
name: myalb
state: absent
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
Ключ | Описание |
|---|---|
access_logs_s3_bucket строка | |
access_logs_s3_enabled строка | Указывает, включены ли журналы доступа, хранящиеся в Amazon S3. Возвращается: когда Пример: |
access_logs_s3_prefix строка | |
availability_zones список / элементы=словарь | Зоны доступности для балансировщика нагрузки. Возвращается: когда Пример: |
|
load_balancer_addresses список / элементы=словарь |
Информация о статических IP-адресах для балансировщика нагрузки. Возвращается: когда |
|
allocation_id строка |
Идентификатор выделения Elastic IP-адреса для балансировщика нагрузки с внутренней направленностью. Возвращается: когда |
|
ip_address строка |
Статический IP-адрес. Возвращается: когда |
|
ipv6_address строка |
IPv6-адрес. Возвращается: когда |
|
private_ipv4_address строка |
Приватный IPv4-адрес для внутреннего балансировщика нагрузки. Возвращается: когда |
|
subnet_id строка |
Идентификатор подсети. Возвращается: когда |
|
zone_name строка |
Название зоны доступности. Возвращается: когда |
canonical_hosted_zone_id строка | Идентификатор связанной зоны размещения Amazon Route 53. Возвращается: когда Пример: |
changed булево | Создан/обновлён/удален ли балансировщик нагрузки. Возвращается: всегда Пример: |
client_keep_alive_seconds строка | |
connection_logs_s3_bucket строка | |
connection_logs_s3_enabled строка | |
connection_logs_s3_prefix строка | Префикс расположения в ведре S3 для журналов подключений. Возвращается: когда Пример: |
created_time string | Дата и время создания балансировщика. Возвращается: когда Пример: |
deletion_protection_enabled string | |
dns_name string | Публичное имя DNS балансировщика. Возвращается: когда Пример: |
idle_timeout_timeout_seconds string | |
ip_address_type string | Тип IP-адресов, используемых подсетями для балансировщика. Возвращается: когда Пример: |
ipv6_deny_all_igw_traffic string | Блокирует доступ интернет-шлюза (IGW) к балансировщику. Возвращается: когда Пример: |
listeners list / elements=dictionary | Информация о слушателях. Возвращается: когда |
|
certificates list / elements=dictionary |
Сертификат SSL сервера. Возвращается: когда |
|
certificate_arn string |
Amazon Resource Name (ARN) сертификата. Возвращается: когда Пример: |
|
default_actions string |
Действия по умолчанию для слушателя. Возвращается: когда Пример: |
|
forward_config dictionary |
Информация для создания действия, которое распределяет запросы между одной или несколькими целевыми группами. Возвращается: когда |
|
target_group_stickiness_config dictionary |
Целевая группа, сохраняющая свойства для правила. Возвращается: когда |
|
enabled boolean |
Указывает, включена ли сохраняющая свойства для целевой группы. Возвращается: когда |
|
target_groups dictionary |
Целевые группы. Возвращается: когда |
|
target_group_arn string |
Amazon Resource Name (ARN) целевой группы. Возвращается: когда |
|
weight integer |
Вес. Возвращается: когда |
|
target_group_arn string |
Amazon Resource Name (ARN) целевой группы. Возвращается: когда Пример: |
|
type string |
|
listener_arn string |
Универсальное имя ресурса (ARN) прослушивателя. Возвращается: when Пример: |
|
load_balancer_arn string |
Универсальное имя ресурса (ARN) балансировщика нагрузки. Возвращается: when Пример: |
|
port integer | |
|
protocol string |
Протокол для соединений от клиентов к балансировщику нагрузки. Возвращается: when Пример: |
|
rules list / elements=dictionary |
Список правил прослушивателя. Возвращается: when |
|
actions list / elements=dictionary |
Действия. Возвращается: when Пример: |
|
forward_config dictionary |
Информация для создания действия, распределяющего запросы между одной или несколькими целевыми группами. Возвращается: when |
|
target_group_stickiness_config dictionary |
Прилипание целевой группы для правила. Возвращается: when |
|
enabled boolean |
Указывает, включено ли прилипание целевой группы. Возвращается: when |
|
target_groups dictionary |
Целевые группы. Возвращается: when |
|
target_group_arn string |
Универсальное имя ресурса (ARN) целевой группы. Возвращается: when |
|
weight integer |
Вес. Возвращается: when |
|
target_group_arn string |
Универсальное имя ресурса (ARN) целевой группы. Возвращается: when |
|
type string |
Тип действия. Возвращается: when |
|
conditions list / elements=string | |
|
is_default boolean |
Указывает, является ли это правило правилом по умолчанию. Возвращается: when Пример: |
|
priority string | |
|
rule_arn string |
|
ssl_policy string |
Политика безопасности, определяющая поддерживаемые шифры и протоколы. Возвращается: when Пример: |
load_balancer_arn string | Универсальное имя ресурса (ARN) балансировщика нагрузки. Возвращается: when Пример: |
load_balancer_name string | |
load_balancing_cross_zone_enabled string | Указывает, включена ли балансировка нагрузки между зонами. Возвращается: when Пример: |
routing_http2_enabled string | |
routing_http_desync_mitigation_mode string | Определяет, как балансировщик нагрузки обрабатывает запросы, которые могут представлять угрозу безопасности для приложения. Возвращается: when Пример: |
routing_http_drop_invalid_header_fields_enabled string | Указывает, удаляет ли балансировщик нагрузки HTTP-заголовки с неверными полями заголовков (true) или перенаправляет их на целевые объекты (false). Возвращается: when Пример: |
routing_http_preserve_host_header_enabled string | Указывает, должен ли Application Load Balancer сохранять заголовок Host в HTTP-запросе и отправлять его целевому объекту без изменений. Возвращается: when Пример: |
routing_http_x_amzn_tls_version_and_cipher_suite_enabled string | Указывает, добавляются ли два заголовка к запросу клиента перед отправкой его на целевой объект. Возвращается: when Пример: |
routing_http_xff_client_port_enabled string | Указывает, должен ли заголовок X-Forwarded-For сохранять исходный порт, который клиент использовал для подключения к балансировщику нагрузки. Возвращается: when Пример: |
routing_http_xff_header_processing_mode string | Позволяет изменять, сохранять или удалять заголовок X-Forwarded-For в HTTP-запросе, прежде чем Application Load Balancer отправит запрос на целевой объект. Возвращается: when Пример: |
scheme string | Балансировщик нагрузки, ориентированный на Интернет или внутренний. Возвращается: when Пример: |
security_groups list / elements=string | Идентификаторы групп безопасности для балансировщика нагрузки. Возвращается: when Пример: |
state dictionary | |
|
code string |
Код состояния. Возвращается: success |
|
reason string |
Описание состояния. Возвращается: when available |
Теги словарь | Теги, прикрепленные к балансировщику нагрузки. Возвращается: при Пример: |
Тип строка | |
vpc_id строка | |
waf_fail_open_enabled строка | Указывает, разрешить ли балансировщику нагрузки, поддерживающему AWS WAF, маршрутизировать запросы к целевым узлам, если он не может перенаправить запрос в AWS WAF. Возвращается: при Пример: |
Ссылки на сборку
© 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/amazon/aws/elb_application_lb_module.html