community.aws.elb_application_lb – Управление балансировщиком нагрузки приложений
Примечание
Этот плагин входит в коллекцию community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Для использования в книге задач укажите: community.aws.elb_application_lb.
Новое в версии 1.0.0: of community.aws
Обзор
- Управление балансировщиком Elastic Load Balancer AWS для приложений. Подробнее см. https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- boto
- boto3
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||
|---|---|---|---|---|
| access_logs_enabled boolean |
| Включить или выключить логи доступа. При установке, необходимо также установить access_logs_s3_bucket. | ||
| access_logs_s3_bucket string | Имя ведра S3 для логов доступа. Ведро должно находиться в той же области, что и балансировщик нагрузки, и иметь политику ведра, которая предоставляет Elastic Load Balancing разрешение на запись в ведро. Требуется, если включены логи доступа в Amazon S3. При установке, необходимо также установить access_logs_enabled. | |||
| access_logs_s3_prefix string | Префикс для расположения логов в ведре S3. Если префикс не указан, логи доступа хранятся в корне ведра. Не может начинаться или заканчиваться косой чертой. | |||
| aws_access_key string | Ключ доступа 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 path | Путь к файлу CA-сертификатов для проверки SSL-сертификатов. Используется только для модулей, основанных на boto3. Примечание: CA-сертификаты считываются со стороны модуля и могут потребовать явного копирования с контроллера, если они не запущены локально. | |||
| aws_config dictionary | Словарь для изменения конфигурации 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 string | Секретный ключ 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 boolean |
| Использовать журнал botocore.endpoint для анализа уникальных (а не общих) API-вызовов «resource:action», выполненных во время задачи, выводя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода общего списка, выполненного во время выполнения playbook. Также может быть использована переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS. | ||
| deletion_protection boolean |
| Указывает, включена ли защита от удаления для ELB. По умолчанию false. | ||
| ec2_url string | URL для подключения к EC2 или вашей облачной системе Eucalyptus (по умолчанию модуль использует адреса EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если не используется регион. Если не задан, используется значение переменной окружения EC2_URL, если она задана. псевдонимы: aws_endpoint_url, endpoint_url | |||
| http2 boolean |
| Указывает, включена ли маршрутизация HTTP2. По умолчанию false. | ||
| idle_timeout integer | Количество секунд ожидания перед закрытием незанятого соединения. | |||
| listeners list / elements=dictionary | Список словарей, содержащих слушателей для подключения к ELB. Подробности словаря см. в примерах. Обратите внимание, что ключи слушателей имеют стиль CamelCase. | |||
| Certificates list / elements=dictionary | Сертификат SSL сервера. | |||
| CertificateArn string | Amazon Resource Name (ARN) сертификата. | |||
| DefaultActions list / elements=dictionary / required | Действия по умолчанию для слушателя. | |||
| TargetGroupArn string | Amazon Resource Name (ARN) целевой группы. | |||
| Type string | Тип действия. | |||
| Port integer / required | Порт, на котором балансировщик нагрузки прослушивает соединения. | |||
| Protocol string / required | Протокол для соединений от клиентов к балансировщику нагрузки. | |||
| Rules list / elements=dictionary | Список правил слушателя ALB. Полную документацию по возможным условиям и действиям см. в документации boto3: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/elbv2.html#ElasticLoadBalancingv2.Client.create_rule | |||
| Actions list / elements=string | Действия, которые применяются, если все условия правила выполнены. | |||
| Conditions list / elements=string | Условия, которые должны быть выполнены для применения действий. | |||
| Priority integer | Приоритет правила. | |||
| SslPolicy string | Политика безопасности, определяющая поддерживаемые шифры и протоколы. | |||
| name string / required | Имя балансировщика нагрузки. Это имя должно быть уникальным в вашей учетной записи AWS, иметь не более 32 символов, содержать только буквенно-цифровые символы или дефисы, и не должно начинаться или заканчиваться дефисом. | |||
| profile string | Использует профиль 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 | |||
| purge_listeners boolean |
| Если yes, существующие слушатели будут очищены из ELB, чтобы точно соответствовать тому, что определено параметром listeners.Если параметр listeners не установлен, слушатели не будут изменены. | ||
| purge_rules boolean |
| При установке в no, существующие правила балансировщика нагрузки останутся на месте. Будут изменены и добавлены, но не удалены. | ||
| purge_tags boolean |
| Если да, существующие метки будут удалены из ресурса, чтобы точно соответствовать параметру tags. Если параметр tags не задан, метки не будут изменены. | ||
| region string | AWS-регион для использования. Если не указан, используется значение переменной среды AWS_REGION или EC2_REGION, если она задана. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
псевдонимы: aws_region, ec2_region | |||
| scheme string |
| Интернет-ориентированный или внутренний балансировщик нагрузки. Схема ELB не может быть изменена после создания. | ||
| security_groups list / elements=string | По умолчанию: [] | Список имён или идентификаторов групп безопасности, которые необходимо назначить балансировщику нагрузки. Требуется, если state=present. | ||
| security_token string | Токен безопасности AWS STS. Если не задано, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если задан параметр profile, этот параметр игнорируется. Одновременное использование параметров security_token и profile устарело и будет считаться взаимоисключающими после 2022-06-01. псевдонимы: aws_security_token, access_token | |||
| state string |
| Создать или уничтожить балансировщик нагрузки. | ||
| subnets list / elements=string | Список идентификаторов подсетей, которые нужно подключить к балансировщику нагрузки. Можно указать только одну подсеть на зону доступности. Необходимо указать подсети как минимум из двух зон доступности. Требуется, если state=present. | |||
| tags dictionary | Словарь с одним или несколькими тегами, которые нужно назначить балансировщику нагрузки. | |||
| validate_certs boolean |
| При значении "no", сертификаты SSL не будут проверены для версий boto >= 2.6.0. | ||
| wait boolean |
| Дождаться состояния балансировщика 'active' перед завершением. Проверка состояния выполняется каждые 15 секунд до достижения успешного состояния. После 40 неудачных проверок возвращается ошибка. | ||
| wait_timeout integer | Время в секундах, используемое совместно с параметром wait. | |||
Примечания
Примечание
- Слушатели сопоставляются по порту. Если порт слушателя изменён, будет создан новый слушатель.
- Правила слушателей сопоставляются по приоритету. Если приоритет правила изменён, будет создано новое правило.
- Если параметры не заданы в модуле, могут быть использованы следующие переменные окружения в порядке убывания приоритета
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.
# Create an ELB and attach a listener
- community.aws.elb_application_lb:
name: myelb
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 (only one certficate ARN should be provided)
- CertificateArn: arn:aws:iam::12345678987:server-certificate/test.domain.com
DefaultActions:
- Type: forward # Required.
TargetGroupName: # Required. The name of the target group
state: present
# Create an ELB and attach a listener with logging enabled
- community.aws.elb_application_lb:
access_logs_enabled: yes
access_logs_s3_bucket: mybucket
access_logs_s3_prefix: "logs"
name: myelb
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 (only one certficate ARN should be provided)
- CertificateArn: arn:aws:iam::12345678987: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
- community.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::12345678987: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
# Remove an ELB
- community.aws.elb_application_lb:
name: myelb
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | ||
|---|---|---|---|---|
| access_logs_s3_bucket string | при state = present | Имя ведра S3 для журналов доступа. Пример: mys3bucket | ||
| access_logs_s3_enabled string | при state = present | Указывает, включены ли журналы доступа, хранящиеся в Amazon S3. Пример: True | ||
| access_logs_s3_prefix string | при state = present | Префикс для расположения в ведре S3. Пример: my/logs | ||
| availability_zones list / elements=string | при state = present | Зоны доступности для балансировщика нагрузки. Пример: [{'subnet_id': 'subnet-aabbccddff', 'zone_name': 'ap-southeast-2a'}] | ||
| canonical_hosted_zone_id string | при state = present | Идентификатор зоны размещения Amazon Route 53, связанной с балансировщиком нагрузки. Пример: ABCDEF12345678 | ||
| created_time string | при state = present | Дата и время создания балансировщика нагрузки. Пример: 2015-02-12T02:14:02+00:00 | ||
| deletion_protection_enabled string | при state = present | Указывает, включена ли защита от удаления. Пример: True | ||
| dns_name string | при state = present | Публичное имя DNS балансировщика нагрузки. Пример: internal-my-elb-123456789.ap-southeast-2.elb.amazonaws.com | ||
| idle_timeout_timeout_seconds integer | при state = present | Значение тайм-аута бездействия в секундах. Пример: 60 | ||
| ip_address_type string | при state = present | Тип IP-адресов, используемых подсетями для балансировщика нагрузки. Пример: ipv4 | ||
| listeners complex | при state = present | Информация о слушателях. | ||
| certificates complex | при state = present | Сертификат SSL сервера. | ||
| certificate_arn string | при state = present | Amazon Resource Name (ARN) сертификата. | ||
| default_actions string | при state = present | Действия по умолчанию для слушателя. | ||
| target_group_arn string | при state = present | Amazon Resource Name (ARN) целевой группы. | ||
| type string | при state = present | Тип действия. | ||
| listener_arn string | при state = present | Amazon Resource Name (ARN) слушателя. | ||
| load_balancer_arn string | при state = present | Amazon Resource Name (ARN) балансировщика нагрузки. | ||
| port integer | при state = present | Порт, на котором балансировщик нагрузки слушает. Пример: 80 | ||
| protocol string | при state = present | Протокол для соединений от клиентов к балансировщику нагрузки. Пример: HTTPS | ||
| ssl_policy string | при state = present | Политика безопасности, определяющая поддерживаемые шифры и протоколы. | ||
| load_balancer_arn string | при state = present | Amazon Resource Name (ARN) балансировщика нагрузки. Пример: arn:aws:elasticloadbalancing:ap-southeast-2:0123456789:loadbalancer/app/my-elb/001122334455 | ||
| load_balancer_name string | при state = present | Имя балансировщика нагрузки. Пример: my-elb | ||
| routing_http2_enabled string | при state = present | Указывает, включен ли HTTP/2. Пример: True | ||
| scheme string | при state = present | Балансировщик нагрузки внешнего или внутреннего типа. Пример: internal | ||
| security_groups list / elements=string | при state = present | Идентификаторы групп безопасности для балансировщика нагрузки. Пример: ['sg-0011223344'] | ||
| state dictionary | при state = present | Состояние балансировщика нагрузки. Пример: {'code': 'active'} | ||
| tags dictionary | при state = present | Теги, прикрепленные к балансировщику нагрузки. Пример: { 'Tag': 'Пример' } | ||
| type string | при state = present | Тип балансировщика нагрузки. Пример: application | ||
| vpc_id string | при state = present | Идентификатор VPC для балансировщика нагрузки. Пример: vpc-0011223344 | ||
Авторы
- 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_application_lb_module.html