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
Обзор
- Управление балансировщиком нагрузки приложений 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_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. | |||
| Сертификаты list / elements=dictionary | SSL-сертификат сервера. | |||
| CertificateArn string | Amazon Resource Name (ARN) сертификата. | |||
| DefaultActions list / elements=dictionary / required | Действия по умолчанию для слушателя. | |||
| TargetGroupArn string | Amazon Resource Name (ARN) целевой группы. | |||
| Type string | Тип действия. | |||
| Порт integer / required | Порт, на котором балансировщик нагрузки прослушивает соединения. | |||
| Protocol string / required | Протокол для соединений от клиентов к балансировщику нагрузки. | |||
| Rules list / elements=dictionary | Список правил ALB Listener. Полная документация по возможным условиям и действиям доступна в документации 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 |
| Если yes, существующие теги будут удалены с ресурса, чтобы точно соответствовать параметру 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 | при состоянии present | Имя ведра S3 для журналов доступа. Пример: mys3bucket | ||
| access_logs_s3_enabled string | при состоянии present | Указывает, включены ли журналы доступа, хранящиеся в Amazon S3. Пример: True | ||
| access_logs_s3_prefix string | при состоянии present | Префикс для расположения в ведре S3. Пример: my/logs | ||
| availability_zones list / elements=string | при состоянии present | Зоны доступности для балансировщика нагрузки. Пример: [{'subnet_id': 'subnet-aabbccddff', 'zone_name': 'ap-southeast-2a'}] | ||
| canonical_hosted_zone_id string | при состоянии present | Идентификатор размещённой зоны Amazon Route 53, связанной с балансировщиком нагрузки. Пример: ABCDEF12345678 | ||
| created_time string | при состоянии present | Дата и время создания балансировщика нагрузки. Пример: 2015-02-12T02:14:02+00:00 | ||
| deletion_protection_enabled string | при состоянии present | Указывает, включена ли защита от удаления. Пример: True | ||
| dns_name string | при состоянии present | Общедоступное имя DNS балансировщика нагрузки. Пример: internal-my-elb-123456789.ap-southeast-2.elb.amazonaws.com | ||
| idle_timeout_timeout_seconds integer | при состоянии present | Значение тайм-аута бездействия в секундах. Пример: 60 | ||
| ip_address_type string | при состоянии present | Тип IP-адресов, используемых подсетями для балансировщика нагрузки. Пример: ipv4 | ||
| listeners complex | при состоянии present | Информация о слушателях. | ||
| certificates complex | при состоянии present | Сертификат сервера SSL. | ||
| certificate_arn string | при состоянии present | Amazon Resource Name (ARN) сертификата. | ||
| default_actions string | при состоянии present | Действия по умолчанию для слушателя. | ||
| target_group_arn string | при состоянии present | Amazon Resource Name (ARN) целевой группы. | ||
| type string | при состоянии present | Тип действия. | ||
| listener_arn string | при состоянии present | Amazon Resource Name (ARN) слушателя. | ||
| load_balancer_arn string | при состоянии present | Amazon Resource Name (ARN) балансировщика нагрузки. | ||
| port integer | при состоянии present | Порт, на котором балансировщик нагрузки прослушивает подключения. Пример: 80 | ||
| protocol string | при состоянии present | Протокол для подключений клиентов к балансировщику нагрузки. Пример: HTTPS | ||
| ssl_policy string | при состоянии present | Политика безопасности, которая определяет, какие шифры и протоколы поддерживаются. | ||
| load_balancer_arn string | при состоянии present | Amazon Resource Name (ARN) балансировщика нагрузки. Пример: arn:aws:elasticloadbalancing:ap-southeast-2:0123456789:loadbalancer/app/my-elb/001122334455 | ||
| load_balancer_name string | при состоянии present | Имя балансировщика нагрузки. Пример: my-elb | ||
| routing_http2_enabled string | при состоянии present | Указывает, включен ли HTTP/2. Пример: True | ||
| scheme string | при состоянии present | Балансировщик нагрузки — внешнего или внутреннего типа. Пример: internal | ||
| security_groups list / elements=string | при состоянии present | Идентификаторы групп безопасности для балансировщика нагрузки. Пример: ['sg-0011223344'] | ||
| state dictionary | при состоянии present | Состояние балансировщика нагрузки. Пример: {'code': 'active'} | ||
| tags dictionary | при состоянии present | Теги, прикреплённые к балансировщику нагрузки. Пример: { 'Tag': 'Example' } | ||
| type string | при состоянии present | Тип балансировщика нагрузки. Пример: application | ||
| vpc_id string | при состоянии present | Идентификатор VPC для балансировщика нагрузки. Пример: vpc-0011223344 | ||
Авторы
- 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_application_lb_module.html