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 boolean |
| Включает или отключает журналы доступа. Если true, необходимо задать access_logs_s3_bucket. |
| access_logs_s3_bucket - | Имя ведра S3 для журналов доступа. Требуется, если включены журналы доступа в Amazon S3. Ведро должно находиться в той же области, что и балансировщик нагрузки, и иметь политику ведра, которая предоставляет Elastic Load Balancing разрешение на запись в ведро. | |
| access_logs_s3_prefix - | Префикс расположения логов в ведре S3. Если префикс не указан, журналы доступа хранятся в корне ведра. Не может начинаться или заканчиваться косой чертой. | |
| aws_access_key string | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. псевдонимы: ec2_access_key, access_key | |
| aws_secret_key string | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. псевдонимы: ec2_secret_key, secret_key | |
| debug_botocore_endpoint_logs boolean добавлен в 2.8 |
| Используйте логгер botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», выполненных во время задачи, выводив список в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action, чтобы вывести полный список, созданный во время выполнения книги сценариев. Переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS также может быть использована. |
| deletion_protection boolean |
| Указывает, включена ли защита от удаления для ELB. |
| ec2_url string | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется область. Должен быть указан для всех других модулей, если область не используется. Если не задан, используется значение переменной окружения EC2_URL, если она есть. | |
| http2 boolean добавлен в 2.6 |
| Указывает, включить ли маршрутизацию HTTP2. |
| idle_timeout - | Значение по умолчанию: 60 | Количество секунд ожидания закрытия неактивного соединения. |
| listeners - | Список словарей, содержащих слушателей для подключения к ELB. Подробности о требуемом словаре см. в примерах. Обратите внимание, что ключи слушателей написаны с использованием CamelCase. | |
| name - / требуется | Имя балансировщика нагрузки. Это имя должно быть уникальным в рамках вашей учетной записи AWS, может иметь максимальную длину 32 символа, должно содержать только буквенно-цифровые символы или дефисы и не должно начинаться или заканчиваться дефисом. | |
| profile string | Использует профиль 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 string | 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 string | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token | |
| state - |
| Создать или удалить балансировщик нагрузки. |
| subnets - | Список идентификаторов подсетей, которые необходимо подключить к балансировщику нагрузки. Вы можете указать только одну подсеть на одну зону доступности. Вы должны указать подсети как минимум из двух зон доступности. Требуется, если state=present. | |
| tags - | Словарь одного или нескольких тегов для назначения балансировщику нагрузки. | |
| validate_certs boolean |
| Если значение "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.8/modules/elb_application_lb_module.html