elb_application_lb - Управление балансировщиком нагрузки приложений
Новая версия 2.4.
Обзор
- Управление балансировщиком нагрузки AWS Application Elastic Load Balancer. Подробнее см. https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/.
Требования
Ниже приведены требования к хосту, на котором будет выполняться этот модуль.
- boto
- boto3
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| access_logs_enabled bool |
| Включить или выключить логи доступа. При значении "да", необходимо задать 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 bool |
| Указывает, включена ли защита от удаления для ELB. |
| ec2_url | URL для подключения к EC2 или облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где область требуется. Должен быть указан для всех остальных модулей, если область не используется. Если не задан, используется значение переменной среды EC2_URL, если она есть. | |
| idle_timeout | По умолчанию: 60 | Количество секунд ожидания перед закрытием неактивного соединения. |
| listeners | Список словарей, содержащих слушателей для присоединения к ELB. Подробности словаря см. в примерах. Обратите внимание, что ключи слушателей имеют регистронезависимый вид. | |
| name обязательно | Название балансировщика нагрузки. Это имя должно быть уникальным в пределах вашей учетной записи AWS, иметь максимальную длину 32 символа, содержать только буквенно-цифровые символы или дефисы и не начинаться или заканчиваться дефисом. | |
| profile (добавлено в 1.6) | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| purge_listeners bool |
| Если да, существующие слушатели будут удалены из ELB, чтобы точно соответствовать параметру listeners. Если параметр listeners не задан, слушатели не будут изменены. |
| purge_tags bool |
| Если да, существующие метки будут удалены из ресурса, чтобы точно соответствовать параметру 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 | По умолчанию: [] | Список имен или идентификаторов групп безопасности для назначения балансировщику нагрузки. Требуется, если state=present. |
| security_token (добавлено в 1.6) | AWS STS security token. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Псевдонимы: access_token | |
| state обязательно |
| Создать или удалить балансировщик нагрузки. |
| subnets | Список идентификаторов подсетей для присоединения к балансировщику. Можно указать только одну подсеть на одну зону доступности. Необходимо указать подсети из как минимум двух зон доступности. Требуется, если state=present. | |
| tags | Словарь одной или нескольких меток для назначения балансировщику нагрузки. | |
| validate_certs bool (добавлено в 1.5) |
| При значении "нет", сертификаты SSL не будут проверены для версий boto >= 2.6.0. |
| wait bool (добавлено в 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), если учетные данные не предоставлены. См. http://boto.readthedocs.org/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 сложный тип | при наличии состояния | Информация о слушателях. | ||
| listener_arn строка | при наличии состояния | Amazon Resource Name (ARN) слушателя. | ||
| load_balancer_arn строка | при наличии состояния | Amazon Resource Name (ARN) балансировщика нагрузки. | ||
| port целое число | при наличии состояния | Порт, на котором прослушивает балансировщик нагрузки. Пример: 80 | ||
| protocol строка | при наличии состояния | Протокол для подключений от клиентов к балансировщику нагрузки. Пример: HTTPS | ||
| certificates сложный тип | при наличии состояния | Сертификат SSL сервера. | ||
| certificate_arn строка | при наличии состояния | Amazon Resource Name (ARN) сертификата. | ||
| ssl_policy строка | при наличии состояния | Политика безопасности, определяющая поддерживаемые шифры и протоколы. | ||
| default_actions строка | при наличии состояния | Действия по умолчанию для слушателя. | ||
| type строка | при наличии состояния | Тип действия. | ||
| target_group_arn строка | при наличии состояния | Amazon Resource Name (ARN) целевой группы. | ||
| load_balancer_arn строка | при наличии состояния | Amazon Resource Name (ARN) балансировщика нагрузки. Пример: arn:aws:elasticloadbalancing:ap-southeast-2:0123456789:loadbalancer/app/my-elb/001122334455 | ||
| load_balancer_name строка | при наличии состояния | Имя балансировщика нагрузки. Пример: my-elb | ||
| scheme строка | при наличии состояния | Балансировщик нагрузки с внешним или внутренним доступом. Пример: internal | ||
| security_groups список | при наличии состояния | Идентификаторы групп безопасности для балансировщика нагрузки. Пример: ['sg-0011223344'] | ||
| state словарь | при наличии состояния | Состояние балансировщика нагрузки. Пример: {'code': 'active'} | ||
| tags словарь | при наличии состояния | Теги, прикрепленные к балансировщику нагрузки. Пример: { 'Tag': 'Пример' } | ||
| type строка | при наличии состояния | Тип балансировщика нагрузки. Пример: application | ||
| vpc_id строка | при наличии состояния | Идентификатор VPC для балансировщика нагрузки. Пример: vpc-0011223344 | ||
Состояние
Этот модуль помечен как предварительный, что означает, что он не гарантирует обратную совместимость интерфейса.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. См. Техническое обслуживание и поддержка модулей для получения дополнительной информации.
Список других модулей, которые также поддерживаются сообществом Ansible, см. здесь.
Автор
- 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.6/modules/elb_application_lb_module.html