elb_application_lb – Управление балансировщиком нагрузки приложений
Новое в версии 2.4.
Описание
- Управление балансировщиком Elastic Load Balancing для приложений AWS. Подробнее см. https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- boto
- boto3
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| access_logs_enabled boolean |
| Включает или отключает логи доступа. При значении true, необходимо указать access_logs_s3_bucket. |
| access_logs_s3_bucket - | Имя S3-ведра для логов доступа. Требуется, если включены логи доступа в Amazon S3. Ведро должно находиться в том же регионе, что и балансировщик нагрузки, и иметь политику ведра, предоставляющую Elastic Load Balancing разрешение на запись в ведро. | |
| access_logs_s3_prefix - | Префикс для расположения в S3-ведре. Если префикс не указан, логи доступа хранятся в корневом каталоге ведра. | |
| aws_access_key - | AWS ключ доступа. Если не указан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Псевдонимы: ec2_access_key, access_key | |
| aws_secret_key - | AWS секретный ключ. Если не указан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Псевдонимы: ec2_secret_key, secret_key | |
| deletion_protection boolean |
| Указывает, включена ли защита от удаления для ELB. |
| ec2_url - | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где регион требуется. Должен быть указан для всех других модулей, если регион не используется. Если не указан, используется значение переменной окружения EC2_URL. | |
| http2 boolean добавлено в 2.6 |
| Указывает, включить ли маршрутизацию HTTP2. |
| idle_timeout - | По умолчанию: 60 | Количество секунд ожидания перед закрытием неактивного соединения. |
| listeners - | Список словарей, содержащих слушателей для подключения к ELB. Подробности словаря см. в примерах. Обратите внимание, что ключи слушателей используют CamelCase. | |
| name - / обязательно | Имя балансировщика нагрузки. Это имя должно быть уникальным в вашем аккаунте AWS, может иметь максимальную длину 32 символа, содержать только буквенно-цифровые символы или дефисы, и не должно начинаться или заканчиваться дефисом. | |
| profile - добавлено в 1.6 | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| purge_listeners boolean |
| Если yes, существующие слушатели будут удалены из ELB, чтобы точно соответствовать параметрам listeners. Если параметр listeners не задан, слушатели не будут изменены. |
| purge_rules boolean добавлено в 2.7 |
| Если no, сохраняйте существующие правила балансировщика нагрузки. Будут изменены и добавлены, но не удалены. |
| purge_tags boolean |
| Если yes, существующие теги будут удалены из ресурса, чтобы точно соответствовать параметрам tags. Если параметр tags не задан, теги не будут изменены. |
| region - | AWS регион. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если есть. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
Псевдонимы: aws_region, ec2_region | |
| scheme - |
| Балансировщик нагрузки интернет-ориентированный или внутренний. Схема ELB не может быть изменена после создания. |
| security_groups - | По умолчанию: [] | Список имён или ID групп безопасности, которые следует назначить балансировщику нагрузки. Требуется, если state=present. |
| security_token - добавлено в 1.6 | AWS STS токен безопасности. Если не указан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Псевдонимы: access_token | |
| state - |
| Создать или уничтожить балансировщик нагрузки. |
| subnets - | Список ID подсетей, которые нужно подключить к балансировщику нагрузки. Можно указать только одну подсеть на зону доступности. Необходимо указать подсети как минимум из двух зон доступности. Требуется, если state=present. | |
| tags - | Словарь одного или нескольких тегов для назначения балансировщику нагрузки. | |
| validate_certs boolean добавлено в 1.5 |
| Если «no», сертификаты SSL не будут проверяться для версий boto >= 2.6.0. |
| wait boolean добавлено в 2.6 |
| Подождать, пока состояние балансировщика нагрузки не станет 'active', прежде чем завершить. Проверка статуса выполняется каждые 15 секунд до достижения успешного состояния. Ошибка возвращается после 40 неудачных проверок. |
| wait_timeout - добавлено в 2.6 | Время в секундах для использования в сочетании с wait. |
Примечания
Примечание
- Слушатели сопоставляются по порту. Если порт слушателя изменён, создаётся новый слушатель.
- Правила слушателей сопоставляются по приоритету. Если приоритет правила изменён, создаётся новое правило.
- Если параметры не установлены в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
AWS_URLилиEC2_URL,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 - 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
- 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. Only 'forward' is accepted at this time
TargetGroupName: # Required. The name of the target group
state: present
# Create an ELB and attach a listener with logging enabled
- 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. Only 'forward' is accepted at this time
TargetGroupName: # Required. The name of the target group
state: present
# Create an ALB with listeners and rules
- 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
state: present
# Remove an ELB
- elb_application_lb:
name: myelb
state: absent
Значения возврата
Общие значения возврата документированы здесь, следующие являются полями, уникальными для этого модуля:
| Ключ | Возвращаемое значение | Описание | ||
|---|---|---|---|---|
| access_logs_s3_bucket строка | при наличии состояния | Имя корзины S3 для журналов доступа. Пример: mys3bucket | ||
| access_logs_s3_enabled строка | при наличии состояния | Указывает, включены ли журналы доступа, хранящиеся в Amazon S3. Пример: True | ||
| access_logs_s3_prefix строка | при наличии состояния | Префикс расположения в корзине S3. Пример: /my/logs | ||
| availability_zones список | при наличии состояния | Доступные зоны для балансировщика нагрузки. Пример: [{'subnet_id': 'subnet-aabbccddff', 'zone_name': 'ap-southeast-2a'}] | ||
| canonical_hosted_zone_id строка | при наличии состояния | Идентификатор размещённой зоны Amazon Route 53, связанной с балансировщиком нагрузки. Пример: ABCDEF12345678 | ||
| created_time строка | при наличии состояния | Дата и время создания балансировщика нагрузки. Пример: 2015-02-12T02:14:02+00:00 | ||
| deletion_protection_enabled строка | при наличии состояния | Указывает, включена ли защита от удаления. Пример: True | ||
| dns_name строка | при наличии состояния | Публичное имя DNS балансировщика нагрузки. Пример: internal-my-elb-123456789.ap-southeast-2.elb.amazonaws.com | ||
| idle_timeout_timeout_seconds строка | при наличии состояния | Значение таймаута бездействия в секундах. Пример: 60 | ||
| ip_address_type строка | при наличии состояния | Тип IP-адресов, используемых подсетями для балансировщика нагрузки. Пример: ipv4 | ||
| listeners сложный тип | при наличии состояния | Информация о слушателях. | ||
| certificates сложный тип | при наличии состояния | Сертификат SSL сервера. | ||
| certificate_arn строка | при наличии состояния | Amazon Resource Name (ARN) сертификата. | ||
| default_actions строка | при наличии состояния | Действия по умолчанию для слушателя. | ||
| target_group_arn строка | при наличии состояния | Amazon Resource Name (ARN) целевой группы. | ||
| type строка | при наличии состояния | Тип действия. | ||
| listener_arn строка | при наличии состояния | Amazon Resource Name (ARN) слушателя. | ||
| load_balancer_arn строка | при наличии состояния | Amazon Resource Name (ARN) балансировщика нагрузки. | ||
| port целое число | при наличии состояния | Порт, на котором прослушивает балансировщик нагрузки. Пример: 80 | ||
| protocol строка | при наличии состояния | Протокол для подключений от клиентов к балансировщику нагрузки. Пример: HTTPS | ||
| ssl_policy строка | при наличии состояния | Политика безопасности, определяющая поддерживаемые шифры и протоколы. | ||
| load_balancer_arn строка | при наличии состояния | Amazon Resource Name (ARN) балансировщика нагрузки. Пример: arn:aws:elasticloadbalancing:ap-southeast-2:0123456789:loadbalancer/app/my-elb/001122334455 | ||
| load_balancer_name строка | при наличии состояния | Название балансировщика нагрузки. Пример: my-elb | ||
| routing_http2_enabled строка | при наличии состояния | Указывает, включен ли HTTP/2. Пример: True | ||
| scheme строка | при наличии состояния | Интернет-ориентированный или внутренний балансировщик нагрузки. Пример: internal | ||
| security_groups список | при наличии состояния | Идентификаторы групп безопасности для балансировщика нагрузки. Пример: ['sg-0011223344'] | ||
| state словарь | при наличии состояния | Состояние балансировщика нагрузки. Пример: {'code': 'active'} | ||
| tags словарь | при наличии состояния | Теги, прикрепленные к балансировщику нагрузки. Пример: { 'Tag': 'Пример' } | ||
| type строка | при наличии состояния | Тип балансировщика нагрузки. Пример: application | ||
| vpc_id строка | при наличии состояния | Идентификатор VPC для балансировщика нагрузки. Пример: vpc-0011223344 | ||
Состояние
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- 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.7/modules/elb_application_lb_module.html