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 |
| Включить или выключить логи доступа. При значении «да» необходимо указать access_logs_s3_bucket. |
| access_logs_s3_bucket | Имя S3-бакета для логов доступа. Обязательно, если включены логи доступа в Amazon S3. Бакет должен находиться в том же регионе, что и балансировщик нагрузки, и иметь политику ведра, которая предоставляет балансировщику нагрузки разрешение на запись в ведро. | |
| access_logs_s3_prefix | Префикс для расположения в S3-бакете. Если префикс не указан, логи доступа хранятся в корневом каталоге ведра. | |
| aws_access_key | Значение по умолчанию: None | Ключ доступа AWS. Если не задан, используется значение переменной среды AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Псевдонимы: ec2_access_key, access_key |
| aws_secret_key | Значение по умолчанию: None | Секретный ключ AWS. Если не задан, используется значение переменной среды AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Псевдонимы: ec2_secret_key, secret_key |
| deletion_protection |
| Указывает, включена ли защита от удаления для ELB. |
| ec2_url | Значение по умолчанию: None | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной среды EC2_URL, если таковая имеется. |
| idle_timeout | Значение по умолчанию: 60 | Количество секунд ожидания перед закрытием неактивного соединения. |
| listeners | Список словарей, содержащих слушатели, которые необходимо подключить к ELB. Подробности см. в примерах. Обратите внимание, что ключи слушателей записаны с использованием CamelCase. | |
| name обязательно | Имя балансировщика нагрузки. Это имя должно быть уникальным в рамках вашей учетной записи AWS, может содержать не более 32 символов, содержать только буквенно-цифровые символы или дефисы и не должно начинаться или заканчиваться дефисом. | |
| profile (добавлен в 1.6) | Значение по умолчанию: None | Использует профиль boto. Работает только с boto >= 2.24.0. |
| purge_listeners |
| Если «да», существующие слушатели будут удалены из ELB, чтобы точно соответствовать параметру listeners. Если параметр listeners не задан, слушатели не будут изменены. |
| purge_tags |
| Если «да», существующие метки будут удалены из ресурса, чтобы точно соответствовать параметру 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) | Значение по умолчанию: None | Токен безопасности AWS STS. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Псевдонимы: access_token |
| state обязательно |
| Создать или уничтожить балансировщик нагрузки. |
| subnets | Список идентификаторов подсетей, которые необходимо подключить к балансировщику нагрузки. Вы можете указать только одну подсеть на зону доступности. Вы должны указать подсети как минимум из двух зон доступности. Требуется, если state=present. | |
| tags | Словарь одной или нескольких меток для назначения балансировщику нагрузки. | |
| validate_certs (добавлен в 1.5) |
| При значении «нет» сертификаты SSL не будут проверяться для версий boto >= 2.6.0. |
Примечания
Примечание
- Слушатели сопоставляются по порту. Если порт слушателя изменяется, будет создан новый слушатель.
- Правила слушателей сопоставляются по приоритету. Если приоритет правила изменяется, будет создано новое правило.
- Если параметры не заданы в модуле, могут использоваться следующие переменные среды в порядке убывания приоритета
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 сложное | при наличии состояния | Информация о слушателях. | ||
| default_actions строка | при наличии состояния | Действия по умолчанию для слушателя. | ||
| target_group_arn строка | при наличии состояния | Amazon Resource Name (ARN) целевой группы. | ||
| type строка | при наличии состояния | Тип действия. | ||
| listener_arn строка | при наличии состояния | Amazon Resource Name (ARN) слушателя. | ||
| protocol строка | при наличии состояния | Протокол для соединений от клиентов к балансировщику нагрузки. Пример: HTTPS | ||
| ssl_policy строка | при наличии состояния | Политика безопасности, определяющая, какие шифры и протоколы поддерживаются. | ||
| certificates сложное | при наличии состояния | Сертификат SSL сервера. | ||
| certificate_arn строка | при наличии состояния | Amazon Resource Name (ARN) сертификата. | ||
| load_balancer_arn строка | при наличии состояния | Amazon Resource Name (ARN) балансировщика нагрузки. | ||
| port целое число | при наличии состояния | Порт, на котором слушает балансировщик нагрузки. Пример: 80 | ||
| 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 строка | при наличии состояния | Тип балансировщика нагрузки. Пример: приложение | ||
| vpc_id строка | при наличии состояния | Идентификатор VPC для балансировщика нагрузки. Пример: vpc-0011223344 | ||
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратной совместимости интерфейса.
Автор
- Роб Уайт (@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.5/modules/elb_application_lb_module.html