Spec-Zone.ru › Ansible 2.11

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

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

  • Управление балансировщиком Elastic Load Balancer AWS для приложений. Подробнее см. https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/.

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.

  • boto
  • boto3
  • python >= 2.6

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
access_logs_enabled
boolean
    Варианты:
  • no
  • yes
Включить или выключить логи доступа.
При установке, необходимо также установить 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:action», выполненных во время задачи, выводя набор в ключ 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.
Certificates
list / elements=dictionary
Сертификат SSL сервера.
CertificateArn
string
Amazon Resource Name (ARN) сертификата.
DefaultActions
list / elements=dictionary / required
Действия по умолчанию для слушателя.
TargetGroupArn
string
Amazon Resource Name (ARN) целевой группы.
Type
string
Тип действия.
Port
integer / required
Порт, на котором балансировщик нагрузки прослушивает соединения.
Protocol
string / required
Протокол для соединений от клиентов к балансировщику нагрузки.
Rules
list / elements=dictionary
Список правил слушателя ALB.
Полную документацию по возможным условиям и действиям см. в документации 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
    Варианты:
  • нет
  • да ←
Если да, существующие метки будут удалены из ресурса, чтобы точно соответствовать параметру 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
    Выбираемые значения:
  • present ←
  • absent
Создать или уничтожить балансировщик нагрузки.
subnets
list / elements=string
Список идентификаторов подсетей, которые нужно подключить к балансировщику нагрузки. Можно указать только одну подсеть на зону доступности. Необходимо указать подсети как минимум из двух зон доступности.
Требуется, если state=present.
tags
dictionary
Словарь с одним или несколькими тегами, которые нужно назначить балансировщику нагрузки.
validate_certs
boolean
    Выбираемые значения:
  • no
  • yes ←
При значении "no", сертификаты SSL не будут проверены для версий boto >= 2.6.0.
wait
boolean
    Выбираемые значения:
  • no ←
  • yes
Дождаться состояния балансировщика '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
при state = present
Имя ведра S3 для журналов доступа.

Пример:
mys3bucket
access_logs_s3_enabled
string
при state = present
Указывает, включены ли журналы доступа, хранящиеся в Amazon S3.

Пример:
True
access_logs_s3_prefix
string
при state = present
Префикс для расположения в ведре S3.

Пример:
my/logs
availability_zones
list / elements=string
при state = present
Зоны доступности для балансировщика нагрузки.

Пример:
[{'subnet_id': 'subnet-aabbccddff', 'zone_name': 'ap-southeast-2a'}]
canonical_hosted_zone_id
string
при state = present
Идентификатор зоны размещения Amazon Route 53, связанной с балансировщиком нагрузки.

Пример:
ABCDEF12345678
created_time
string
при state = present
Дата и время создания балансировщика нагрузки.

Пример:
2015-02-12T02:14:02+00:00
deletion_protection_enabled
string
при state = present
Указывает, включена ли защита от удаления.

Пример:
True
dns_name
string
при state = present
Публичное имя DNS балансировщика нагрузки.

Пример:
internal-my-elb-123456789.ap-southeast-2.elb.amazonaws.com
idle_timeout_timeout_seconds
integer
при state = present
Значение тайм-аута бездействия в секундах.

Пример:
60
ip_address_type
string
при state = present
Тип IP-адресов, используемых подсетями для балансировщика нагрузки.

Пример:
ipv4
listeners
complex
при state = present
Информация о слушателях.

certificates
complex
при state = present
Сертификат SSL сервера.

certificate_arn
string
при state = present
Amazon Resource Name (ARN) сертификата.

default_actions
string
при state = present
Действия по умолчанию для слушателя.

target_group_arn
string
при state = present
Amazon Resource Name (ARN) целевой группы.

type
string
при state = present
Тип действия.

listener_arn
string
при state = present
Amazon Resource Name (ARN) слушателя.

load_balancer_arn
string
при state = present
Amazon Resource Name (ARN) балансировщика нагрузки.

port
integer
при state = present
Порт, на котором балансировщик нагрузки слушает.

Пример:
80
protocol
string
при state = present
Протокол для соединений от клиентов к балансировщику нагрузки.

Пример:
HTTPS
ssl_policy
string
при state = present
Политика безопасности, определяющая поддерживаемые шифры и протоколы.

load_balancer_arn
string
при state = present
Amazon Resource Name (ARN) балансировщика нагрузки.

Пример:
arn:aws:elasticloadbalancing:ap-southeast-2:0123456789:loadbalancer/app/my-elb/001122334455
load_balancer_name
string
при state = present
Имя балансировщика нагрузки.

Пример:
my-elb
routing_http2_enabled
string
при state = present
Указывает, включен ли HTTP/2.

Пример:
True
scheme
string
при state = present
Балансировщик нагрузки внешнего или внутреннего типа.

Пример:
internal
security_groups
list / elements=string
при state = present
Идентификаторы групп безопасности для балансировщика нагрузки.

Пример:
['sg-0011223344']
state
dictionary
при state = present
Состояние балансировщика нагрузки.

Пример:
{'code': 'active'}
tags
dictionary
при state = present
Теги, прикрепленные к балансировщику нагрузки.

Пример:
{ 'Tag': 'Пример' }
type
string
при state = present
Тип балансировщика нагрузки.

Пример:
application
vpc_id
string
при state = present
Идентификатор VPC для балансировщика нагрузки.

Пример:
vpc-0011223344


Авторы

  • Rob White (@wimnat)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/aws/elb_application_lb_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API