Spec-Zone.ru › Ansible 2.10

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

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

Обзор

  • Управление балансировщиком нагрузки приложений 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
    Варианты:
  • no ←
  • yes
Используйте логгер botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», выполненных во время задачи, выведя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action, чтобы вывести полный список, сделанный во время выполнения playbook. Также можно использовать переменную среды ANSIBLE_DEBUG_BOTOCORE_LOGS.
deletion_protection
boolean
    Варианты:
  • no
  • yes
Указывает, включена ли защита от удаления для ELB.
По умолчанию false.
ec2_url
string
URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где необходима область. Должен быть указан для всех других модулей, если не используется область. Если не задан, используется значение переменной окружения EC2_URL, если таковое имеется.

псевдонимы: aws_endpoint_url, endpoint_url
http2
boolean
    Варианты:
  • no
  • yes
Указывает, включена ли маршрутизация HTTP2.
По умолчанию false.
idle_timeout
integer
Количество секунд ожидания перед закрытием неактивного соединения.
listeners
list / elements=dictionary
Список словарей, содержащих слушателей, которые необходимо подключить к ELB. Подробности словаря см. в примерах. Обратите внимание, что ключи слушателей используют регистр CamelCase.
Сертификаты
list / elements=dictionary
SSL-сертификат сервера.
CertificateArn
string
Amazon Resource Name (ARN) сертификата.
DefaultActions
list / elements=dictionary / required
Действия по умолчанию для слушателя.
TargetGroupArn
string
Amazon Resource Name (ARN) целевой группы.
Type
string
Тип действия.
Порт
integer / required
Порт, на котором балансировщик нагрузки прослушивает соединения.
Protocol
string / required
Протокол для соединений от клиентов к балансировщику нагрузки.
Rules
list / elements=dictionary
Список правил ALB Listener.
Полная документация по возможным условиям и действиям доступна в документации 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
    Варианты:
  • no
  • yes ←
Если yes, существующие слушатели будут удалены из ELB, чтобы точно соответствовать параметру listeners.
Если параметр listeners не задан, слушатели не будут изменены.
purge_rules
boolean
    Варианты:
  • no
  • yes ←
При установке в значение no, существующие правила балансировщика нагрузки останутся на месте. Будут изменены и добавлены, но не удалены.
purge_tags
boolean
    Варианты:
  • no
  • yes ←
Если 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
string
    Варианты:
  • internet-facing ←
  • internal
Интернет-ориентированный или внутренний балансировщик нагрузки. Схему 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
при состоянии present
Имя ведра S3 для журналов доступа.

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

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

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

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

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

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

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

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

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

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

certificates
complex
при состоянии present
Сертификат сервера SSL.

certificate_arn
string
при состоянии present
Amazon Resource Name (ARN) сертификата.

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

target_group_arn
string
при состоянии present
Amazon Resource Name (ARN) целевой группы.

type
string
при состоянии present
Тип действия.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример:
vpc-0011223344


Авторы

  • 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.10/collections/community/aws/elb_application_lb_module.html

Spec-Zone.ru

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