Spec-Zone.ru › Ansible 2.11

community.aws.ecs_service – Создание, завершение, запуск или остановка сервиса в ECS

Примечание

Этот плагин является частью коллекции community.aws (версия 1.3.0).

Для его установки используйте: ansible-galaxy collection install community.aws.

Для использования в книге задач, укажите: community.aws.ecs_service.

Новое в версии 1.0.0: of community.aws

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

Обзор

  • Создаёт или завершает сервисы ECS.

Требования

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

  • boto
  • boto3
  • botocore
  • json
  • python >= 2.6

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
aws_access_key
строка
Ключ доступа 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
путь
Расположение файла с набором сертификатов CA для проверки SSL-сертификатов.
Используется только для модулей, основанных на boto3.
Примечание: Набор CA считывается на стороне 'модуля' и может потребоваться явное копирование из контроллера, если модуль не запущен локально.
aws_config
словарь
Словарь для изменения конфигурации 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
строка
Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY.
Если задан параметр profile, этот параметр игнорируется.
Одновременное указание параметров aws_secret_key и profile устарело и будет взаимно исключаться после 2022-06-01.

псевдонимы: ec2_secret_key, secret_key
client_token
строка
Уникальный, чувствительный к регистру идентификатор, который вы предоставляете для обеспечения идемпотентности запроса. Разрешено до 32 ASCII символов.
cluster
строка
Имя кластера, в котором существует служба.
debug_botocore_endpoint_logs
логический тип
    Варианты:
  • нет ←
  • да
Использует логгер botocore.endpoint для парсинга уникальных (а не общих) API-вызовов "ресурс:действие", сделанных во время задачи, выводит набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода в полный список, сделанный во время выполнения playbook. Также может быть использована переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS.
delay
целое число
Значение по умолчанию:
10
Время ожидания перед проверкой доступности службы.
deployment_configuration
словарь
Необязательные параметры, которые контролируют deployment_configuration.
Формат: '{"maximum_percent":<целое число>, "minimum_healthy_percent":<целое число>}
maximum_percent
целое число
Верхний предел количества задач в службе, которые разрешены в состоянии RUNNING или PENDING во время развертывания.
minimum_healthy_percent
целое число
Нижний предел количества задач в службе, которые должны оставаться в состоянии RUNNING во время развертывания.
desired_count
целое число
Количество экземпляров службы.
Этот параметр необходим, когда state=present.
ec2_url
строка
URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где регион обязателен. Должен быть указан для всех остальных модулей, если регион не используется. Если не указано, используется значение переменной окружения EC2_URL, если она есть.

псевдонимы: aws_endpoint_url, endpoint_url
force_new_deployment
логический тип
    Варианты:
  • нет ←
  • да
Вынудить развертывание службы, даже если изменений нет.
health_check_grace_period_seconds
целое число
Секунды ожидания перед проверкой работоспособности недавно добавленных/обновленных служб.
Этот параметр требует botocore >= 1.8.20.
launch_type
строка
    Варианты:
  • EC2
  • FARGATE
Тип запуска, на котором будет работать ваша служба.
load_balancers
список / элементы=словарь
Список ELB, определенных для этой службы.
name
строка / обязательно
Имя службы.
network_configuration
словарь
Конфигурация сети службы. Применимо только для определений задач, созданных с network_mode=awsvpc.
assign_public_ip требует botocore >= 1.8.4
assign_public_ip
логический тип
    Варианты:
  • нет
  • да
Получает ли эластический сетевой интерфейс задачи публичный IP-адрес.
Этот параметр требует botocore >= 1.8.4.
security_groups
список / элементы=строка
Список имен или идентификаторов групп безопасности, которые нужно связать с задачей.
subnets
список / элементы=строка
Список идентификаторов подсетей, которые нужно связать с задачей.
placement_constraints
список / элементы=словарь
Ограничения размещения для задач в службе.
См. https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementConstraint.html для получения дополнительной информации.
expression
строка
Выражение языка запросов кластера для применения к ограничению.
type
строка
Тип ограничения.
placement_strategy
список / элементы=словарь
Объекты стратегии размещения, которые нужно использовать для задач в вашей службе. Вы можете указать не более 5 правил стратегии на одну службу.
field
строка
Поле, к которому применяется стратегия размещения.
type
строка
Тип стратегии размещения.
profile
строка
Использует профиль 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
region
строка
AWS регион для использования. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если она есть. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region

псевдонимы: aws_region, ec2_region
repeat
целое число
Значение по умолчанию:
10
Количество попыток проверки доступности службы.
role
строка
Имя или полный Amazon Resource Name (ARN) IAM роли, которая разрешает вашему агенту Amazon ECS делать вызовы к вашему балансировщику нагрузки от вашего имени.
Этот параметр требуется только если вы используете балансировщик нагрузки со своей службой в режиме сети, отличном от awsvpc.
scheduling_strategy
строка
    Варианты:
  • DAEMON
  • REPLICA
Стратегия планирования.
По умолчанию REPLICA, если не задано, чтобы сохранить предыдущее поведение.
security_token
строка
Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.
Если задан параметр profile, этот параметр игнорируется.
Одновременное указание параметров security_token и profile устарело и будет взаимно исключаться после 2022-06-01.

псевдонимы: aws_security_token, access_token
service_registries
список / элементы=словарь
Описание реестров обнаружения служб, с которыми будет регистрироваться данная служба.
arn
строка
ARN реестра обнаружения служб.
container_name
строка
Имя контейнера для регистрации службы обнаружения.
container_port
integer
Порт контейнера для регистрации службы обнаружения.
state
string / required
    Варианты:
  • present
  • absent
  • deleting
Желаемое состояние службы.
task_definition
string
Определение задачи, которую будет выполнять служба.
Этот параметр требуется, когда state=present.
validate_certs
boolean
    Варианты:
  • no
  • yes ←
При установке в «no» сертификаты SSL не будут проверяться для версий boto >= 2.6.0.

Примечания

Примечание

  • Указанная роль службы должна быть доступна для использования (т.е. должна иметь отношения доверия для службы ECS, ecs.amazonaws.com).
  • Подробные сведения о параметрах и возвращаемых значениях см. на странице https://boto3.readthedocs.io/en/latest/reference/services/ecs.html.
  • Роль IAM должна быть предварительно создана.
  • Если параметры не установлены в модуле, можно использовать следующие переменные среды в порядке убывания приоритета 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.

# Basic provisioning example
- community.aws.ecs_service:
    state: present
    name: console-test-service
    cluster: new_cluster
    task_definition: 'new_cluster-task:1'
    desired_count: 0

- name: create ECS service on VPC network
  community.aws.ecs_service:
    state: present
    name: console-test-service
    cluster: new_cluster
    task_definition: 'new_cluster-task:1'
    desired_count: 0
    network_configuration:
      subnets:
      - subnet-abcd1234
      security_groups:
      - sg-aaaa1111
      - my_security_group

# Simple example to delete
- community.aws.ecs_service:
    name: default
    state: absent
    cluster: new_cluster

# With custom deployment configuration (added in version 2.3), placement constraints and strategy (added in version 2.4)
- community.aws.ecs_service:
    state: present
    name: test-service
    cluster: test-cluster
    task_definition: test-task-definition
    desired_count: 3
    deployment_configuration:
      minimum_healthy_percent: 75
      maximum_percent: 150
    placement_constraints:
      - type: memberOf
        expression: 'attribute:flavor==test'
    placement_strategy:
      - type: binpack
        field: memory

Возвращаемые факты

Возвращаемые этим модулем факты добавляются/обновляются в фактах хоста hostvars и могут быть использованы по имени, как и любые другие факты хоста. Для их использования не нужно их регистрировать.

Факт Возвращаемое значение Описание
service
complex / elements=string
при существовании и удалении службы
Подробности удаленной службы.

clusterArn
string / elements=string
всегда
Amazon Resource Name (ARN) кластера, в котором размещена служба.

deploymentConfiguration
complex / elements=string
всегда
Словарь deploymentConfiguration

maximumPercent
integer / elements=string
всегда
Параметр maximumPercent

minimumHealthyPercent
integer / elements=string
всегда
Параметр minimumHealthyPercent

deployments
list / elements=dictionary
всегда
Список развертываний службы

desiredCount
integer / elements=string
всегда
Желаемое количество экземпляров определения задачи, которые должны работать в службе.

events
list / elements=dictionary
всегда
Список событий службы

loadBalancers
complex / elements=string
всегда
Список объектов балансировщиков нагрузки

containerName
string / elements=string
всегда
Имя контейнера для ассоциации с балансировщиком нагрузки.

containerPort
integer / elements=string
всегда
Порт в контейнере для ассоциации с балансировщиком нагрузки.

loadBalancerName
string / elements=string
всегда
имя

pendingCount
integer / elements=string
всегда
Количество задач в кластере, которые находятся в состоянии PENDING.

placementConstraints
list / elements=dictionary
всегда
Список объектов ограничений размещения

expression
string / elements=string
всегда
Выражение языка запросов кластера, которое применяется к ограничению. Обратите внимание, что вы не можете указать выражение, если тип ограничения — distinctInstance.

type
string / elements=string
всегда
Тип ограничения. Допустимые значения — distinctInstance и memberOf.

placementStrategy
list / elements=dictionary
всегда
Список объектов стратегии размещения

field
string / elements=string
всегда
Поле, к которому применяется стратегия размещения. Для стратегии размещения spread допустимые значения — instanceId (или host, что имеет тот же эффект), или любой платформенный или пользовательский атрибут, который применяется к контейнерному экземпляру, например, атрибут:ecs.availability-zone. Для стратегии размещения binpack допустимые значения — CPU и MEMORY.

type
string / elements=string
всегда
Тип стратегии размещения. Допустимые значения — random, spread и binpack.

runningCount
integer / elements=string
всегда
Количество задач в кластере, которые находятся в состоянии RUNNING.

serviceArn
string / elements=string
всегда
Amazon Resource Name (ARN), который идентифицирует службу. ARN содержит пространство имен arn:aws:ecs, за которым следуют регион службы, идентификатор AWS учетной записи владельца службы, пространство имен службы и имя службы. Например, arn:aws:ecs:region:012345678910:service/my-service .

serviceName
string / elements=string
всегда
Сгенерированная пользователем строка, используемая для идентификации службы

status
string / elements=string
всегда
Допустимые значения — ACTIVE, DRAINING или INACTIVE.

taskDefinition
string / elements=string
всегда
ARN определения задачи, используемого для задач в службе.



Значения возврата

Общие значения возврата документированы здесь, следующие — поля, уникальные для данного модуля:

Ключ Возвращаемое значение Описание
service
complex
при создании сервиса
Подробности созданного сервиса.

clusterArn
string
всегда
Amazon Resource Name (ARN) кластера, на котором размещён сервис.

deploymentConfiguration
complex
всегда
Словарь deploymentConfiguration

maximumPercent
integer
всегда
Параметр maximumPercent

minimumHealthyPercent
integer
всегда
Параметр minimumHealthyPercent

deployments
list / elements=dictionary
всегда
Список развертываний сервиса

desiredCount
integer
всегда
Желаемое количество экземпляров определения задачи, которые должны выполняться в сервисе.

events
list / elements=dictionary
всегда
Список событий сервиса

loadBalancers
complex
всегда
Список объектов балансировщика нагрузки

containerName
string
всегда
Имя контейнера, который следует ассоциировать с балансировщиком нагрузки.

containerPort
integer
всегда
Порт в контейнере, который следует ассоциировать с балансировщиком нагрузки.

loadBalancerName
string
всегда
название

pendingCount
integer
всегда
Количество задач в кластере, находящихся в состоянии ОЖИДАНИЯ.

placementConstraints
list / elements=dictionary
всегда
Список объектов ограничений размещения

expression
string
всегда
Выражение языка запросов кластера для применения к ограничению. Обратите внимание, что выражение нельзя указать, если тип ограничения — distinctInstance.

type
string
всегда
Тип ограничения. Допустимые значения — distinctInstance и memberOf.

placementStrategy
list / elements=dictionary
всегда
Список объектов стратегии размещения

field
string
всегда
Поле, к которому применяется стратегия размещения. Для стратегии размещения spread допустимые значения — instanceId (или host, что имеет тот же эффект), или любой платформенный или настраиваемый атрибут, применяемый к контейнерному экземпляру, например, атрибут:ecs.availability-zone. Для стратегии размещения binpack допустимые значения — CPU и MEMORY.

type
string
всегда
Тип стратегии размещения. Допустимые значения — random, spread и binpack.

runningCount
integer
всегда
Количество задач в кластере, находящихся в состоянии ВЫПОЛНЕНИЯ.

serviceArn
string
всегда
Amazon Resource Name (ARN), определяющий сервис. ARN содержит имя пространства имён arn:aws:ecs, за которым следуют регион сервиса, AWS идентификатор учётной записи владельца сервиса, имя пространства имён сервиса и имя сервиса. Например, arn:aws:ecs:region :012345678910 :service/my-service .

serviceName
string
всегда
Сгенерированная пользователем строка, используемая для идентификации сервиса

status
string
всегда
Допустимые значения — ACTIVE, DRAINING или INACTIVE.

taskDefinition
string
всегда
ARN определения задачи, используемого для задач в сервисе.



Авторы

  • Марк Ченс (@Java1Guy)
  • Дарек Качинский (@kaczynskid)
  • Стефан Марек (@simplesteph)
  • Зак Блазиц (@zacblazic)

© 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/ecs_service_module.html

Spec-Zone.ru

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