Модуль community.aws.ecs_service — создание, завершение, запуск или остановка сервиса в ECS
Примечание
Этот модуль входит в коллекцию community.aws (версия 10.1.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.aws. Для использования этого модуля требуются дополнительные компоненты. Подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.aws.ecs_service.
Добавлено в community.aws 1.0.0
Краткое описание
- Создаёт или завершает работу сервисов ECS.
Требования
Следующие компоненты необходимы на хосте, на котором выполняется этот модуль.
- python >= 3.6
- boto3 >= 1.34.0
- botocore >= 1.34.0
Параметры
Параметр | Комментарии |
|---|---|
access_key aliases: aws_access_key_id, aws_access_key строка | Идентификатор ключа доступа AWS. Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные окружения Параметры aws_access_key и profile взаимоисключающие. Псевдоним aws_access_key_id добавлен в выпуске 5.1.0 для согласованности с AWS botocore SDK. |
aws_ca_bundle путь | Путь к пакету сертификатов CA, используемому для проверки сертификатов SSL. Также можно использовать переменную окружения |
aws_config словарь | Словарь для изменения конфигурации botocore. Параметры приведены в документации AWS: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
capacity_provider_strategy список / элементы=словарь добавлено в community.aws 4.0.0 | Стратегия поставщиков вычислительных мощностей для службы. Для каждой стратегии можно указать не более 6 поставщиков. По умолчанию: |
|
base целое число |
Минимальное количество задач, которые должны использовать указанного поставщика. |
|
capacity_provider строка |
Имя поставщика вычислительных мощностей. |
|
weight целое число |
Относительная доля от общего числа запущенных задач, которые должны использовать указанного поставщика. |
client_token строка | Уникальный идентификатор с учетом регистра, который вы указываете для обеспечения идемпотентности запроса. Допускается до 32 символов ASCII. По умолчанию: |
cluster строка | Имя кластера, в котором находится служба. Если имя кластера не указано, будет использовано По умолчанию: |
debug_botocore_endpoint_logs логическое значение | Использовать регистратор Также можно использовать переменную окружения Варианты:
|
delay целое число | Время ожидания перед проверкой доступности службы. По умолчанию: |
deployment_configuration словарь | Дополнительные параметры, управляющие deployment_configuration. Формат: ‘{“maximum_percent”:<integer>, “minimum_healthy_percent”:<integer>} По умолчанию: |
|
deployment_circuit_breaker словарь |
Автоматический выключатель развертывания определяет, завершится ли развертывание службы с ошибкой, если служба не сможет достичь стабильного состояния. |
|
enable логическое значение |
Если параметр включен, развертывание службы перейдет в состояние сбоя и запуск новых задач прекратится. Варианты:
|
|
rollback логическое значение |
Если параметр включен, ECS после сбоя вернет службу к последнему завершенному развертыванию. Варианты:
|
|
maximum_percent целое число |
Верхний предел числа задач службы, которым во время развертывания разрешено находиться в состоянии RUNNING или PENDING. |
|
minimum_healthy_percent целое число |
Нижний предел числа задач службы, которые должны оставаться в состоянии RUNNING во время развертывания. |
deployment_controller словарь добавлено в community.aws 4.1.0 | Контроллер развертывания, используемый для службы. Если контроллер развертывания не указан, используется контроллер ECS. По умолчанию: |
|
type строка |
Тип используемого контроллера развертывания. Варианты:
|
desired_count целое число | Количество экземпляров службы. Этот параметр обязателен, если state=present. |
enable_execute_command логическое значение добавлено в community.aws 5.4.0 | Включить ли функцию execute command для контейнеров в задаче ECS. Если enable_execute_command=true, функция execute command включается для всех контейнеров в задаче ECS. Варианты:
|
endpoint_url псевдонимы: aws_endpoint_url строка | URL для подключения вместо конечных точек AWS по умолчанию. Хотя этот параметр можно использовать для подключения к другим сервисам, совместимым с AWS, коллекции amazon.aws и community.aws тестируются только с AWS. Также можно использовать переменную окружения |
force_deletion логическое значение добавлено в community.aws 2.1.0 | Принудительно удалить службу. Требуется при удалении службы с масштабом >0 или без целевой группы. Варианты:
|
force_new_deployment логическое значение | Принудительно развернуть службу, даже если изменений нет. Варианты:
|
health_check_grace_period_seconds целое число | Количество секунд ожидания перед проверкой работоспособности только что добавленных или обновленных служб. |
launch_type строка | Тип запуска службы. Варианты:
|
load_balancers список / элементы=словарь | Список ELB, настроенных для этой службы. Обновить балансировщики нагрузки существующей службы нельзя; попытка сделать это приведет к ошибке. Если используется контроллер развертывания CODE_DEPLOY, изменения этого значения просто игнорируются и не приводят к ошибке. По умолчанию: |
name псевдонимы: service строка / обязательный | Имя службы. |
network_configuration словарь | Конфигурация сети службы. Применяется только к определениям задач, созданным с параметром network_mode=awsvpc. |
|
assign_public_ip логическое значение |
Получает ли эластичный сетевой интерфейс задачи публичный IP-адрес. Варианты:
|
|
security_groups список / элементы=строка |
Список имен или идентификаторов групп безопасности, связанных с задачей. |
|
subnets список / элементы=строка |
Список идентификаторов подсетей, связанных с задачей. |
placement_constraints список / элементы=словарь | Ограничения размещения задач службы. Дополнительные сведения см. в разделе https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementConstraint.html. По умолчанию: |
|
expression строка |
Выражение языка запросов кластера, применяемое к ограничению. |
|
type строка |
Тип ограничения. |
placement_strategy список / элементы=словарь | Объекты стратегии размещения задач службы. Для каждой службы можно указать не более 5 правил стратегии. По умолчанию: |
|
field строка |
Поле, к которому применяется стратегия размещения. |
|
type строка |
Тип стратегии размещения. |
platform_version строка добавлено в community.aws 1.5.0 | Числовая часть версии платформы или LATEST Дополнительные сведения см. в разделе https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html. |
profile псевдонимы: aws_profile строка | Именованный профиль AWS для аутентификации. Дополнительные сведения об именованных профилях см. в документации AWS: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Также можно использовать переменную окружения Параметр profile взаимоисключающий с параметрами aws_access_key, aws_secret_key и session_token. |
propagate_tags строка добавлено в community.aws 4.1.0 | Передавать теги из определения задачи ECS или службы ECS задаче ECS. Варианты:
|
purge_placement_constraints логическое значение добавлено в community.aws 5.3.0 | Включает или отключает перезапись существующих ограничений размещения. Это необходимо для обратной совместимости. По умолчанию purge_placement_constraints=false. В выпуске 9.0.0 значение будет изменено на purge_placement_constraints=true. Варианты:
|
purge_placement_strategy логическое значение добавлено в community.aws 5.3.0 | Включает или отключает перезапись существующей стратегии размещения. Это необходимо для обратной совместимости. По умолчанию purge_placement_strategy=false. В выпуске 9.0.0 значение будет изменено на purge_placement_strategy=true. Варианты:
|
region псевдонимы: aws_region строка | Регион AWS. Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется. Также можно использовать переменную окружения Дополнительные сведения см. в документации Amazon AWS: http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. |
repeat целое число | Количество проверок доступности службы. По умолчанию: |
role строка | Имя или полное имя ресурса Amazon (ARN) роли IAM, которая позволяет агенту контейнеров Amazon ECS выполнять вызовы балансировщика нагрузки от вашего имени. Этот параметр требуется только при использовании балансировщика нагрузки со службой в режиме сети, отличном от По умолчанию: |
scheduling_strategy строка | Стратегия планирования. Если значение не задано, используется Варианты:
|
secret_key псевдонимы: aws_secret_access_key, aws_secret_key string | Секретный ключ доступа AWS. Подробнее о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные окружения Параметры secret_key и profile являются взаимоисключающими. Псевдоним aws_secret_access_key добавлен в выпуске 5.1.0 для соответствия AWS SDK botocore. |
service_registries list / elements=dictionary | Описывает реестры обнаружения сервисов, в которых будет зарегистрирован этот сервис. По умолчанию: |
|
arn string |
ARN реестра обнаружения сервисов. |
|
container_name string |
Имя контейнера для регистрации обнаружения сервиса. |
|
container_port integer |
Порт контейнера для регистрации обнаружения сервиса. |
session_token псевдонимы: aws_session_token string | Токен сеанса AWS STS для использования с временными учетными данными. Подробнее о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменную окружения Параметры session_token и profile являются взаимоисключающими. |
state string / обязательный | Требуемое состояние сервиса. Варианты:
|
tags dictionary добавлено в community.aws 4.1.0 | Словарь тегов, которые нужно добавить к ресурсу или удалить из него. |
task_definition string | Определение задачи, которую будет запускать сервис. Этот параметр обязателен, если state=present, кроме случаев, когда задано force_new_deployment=True. Этот параметр игнорируется при обновлении сервиса с контроллером развертывания |
validate_certs boolean | Если задано значение Настоятельно не рекомендуется задавать validate_certs=false; вместо этого рассмотрите возможность задать aws_ca_bundle. Варианты:
|
wait boolean добавлено в community.aws 4.1.0 | Нужно ли ожидать, пока сервис перейдет в неактивное состояние. Ожидание выполняется только если state имеет значение Варианты:
|
Примечания
Примечание
- Указанная роль сервиса должна допускать принятие роли (то есть иметь отношение доверия для сервиса ECS, ecs.amazonaws.com).
- Сведения о параметрах и возвращаемых значениях см. в документации https://boto3.readthedocs.io/en/latest/reference/services/ecs.html.
- Роль IAM должна быть создана заранее.
- Внимание: В модулях переменные окружения и файлы конфигурации считываются из контекста «узла» Ansible, а не из контекста «контроллера». Поэтому файлы может потребоваться явно скопировать на «узел». В модулях поиска и подключения переменные окружения и файлы конфигурации считываются из контекста «контроллера» Ansible, а не из контекста «узла».
- Используемый Ansible пакет AWS SDK (boto3) может также считывать значения учетных данных и другие настройки, например регион, из файлов конфигурации в контексте «узла» Ansible (обычно
~/.aws/credentials). Подробнее см. в документации https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.
Примеры
# 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
# With deployment circuit breaker (added in version 4.0)
- community.aws.ecs_service:
state: present
name: test-service
cluster: test-cluster
task_definition: test-task-definition
desired_count: 3
deployment_configuration:
deployment_circuit_breaker:
enable: true
rollback: true
# With capacity_provider_strategy (added in version 4.0)
- community.aws.ecs_service:
state: present
name: test-service
cluster: test-cluster
task_definition: test-task-definition
desired_count: 1
capacity_provider_strategy:
- capacity_provider: test-capacity-provider-1
weight: 1
base: 0
# With tags and tag propagation
- community.aws.ecs_service:
state: present
name: tags-test-service
cluster: new_cluster
task_definition: 'new_cluster-task:1'
desired_count: 1
tags:
Firstname: jane
lastName: doe
propagate_tags: SERVICE
Возвращаемые факты
Факты, возвращаемые этим модулем, добавляются в факты узла hostvars или обновляются в них. На них можно ссылаться по имени, как и на любые другие факты узла. Чтобы использовать их, регистрировать их не требуется.
Ключ | Описание |
|---|---|
service complex | Сведения об удаленном сервисе. Возвращается: если сервис существовал и был удален |
|
clusterArn string |
Amazon Resource Name (ARN) кластера, в котором размещен сервис. Возвращается: всегда |
|
deploymentConfiguration complex |
Словарь deploymentConfiguration Возвращается: всегда |
|
deploymentCircuitBreaker complex |
Словарь deploymentCircuitBreaker Возвращается: всегда |
|
enable boolean |
Состояние функции автоматического выключателя. Возвращается: всегда |
|
rollback boolean |
Состояние функции отката автоматического выключателя. Возвращается: всегда |
|
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 |
Число задач в кластере, находящихся в состоянии PENDING. Возвращается: всегда |
|
placementConstraints list / elements=dictionary |
Список объектов ограничений размещения Возвращается: всегда |
|
expression string |
Выражение языка запросов кластера, применяемое к ограничению. Обратите внимание: нельзя указать выражение, если тип ограничения — distinctInstance. Возвращается: всегда |
|
type string |
Тип ограничения. Допустимые значения: distinctInstance и memberOf. Возвращается: всегда |
|
placementStrategy list / elements=dictionary |
Список объектов стратегий размещения Возвращается: всегда |
|
field string |
Поле, к которому применяется стратегия размещения. Для стратегии spread допустимы значения instanceId (или host, что дает тот же результат), а также любой атрибут платформы или пользовательский атрибут, примененный к экземпляру контейнера, например attribute:ecs.availability-zone. Для стратегии binpack допустимы значения CPU и MEMORY. Возвращается: всегда |
|
type string |
Тип стратегии размещения. Допустимые значения: random, spread и binpack. Возвращается: всегда |
|
propagateTags string |
Тип распространения тегов, примененный к ресурсу Возвращается: всегда |
|
runningCount integer |
Число задач в кластере, находящихся в состоянии RUNNING. Возвращается: всегда |
|
serviceArn string |
Amazon Resource Name (ARN), идентифицирующее сервис. ARN содержит пространство имен arn:aws:ecs, за которым следуют регион сервиса, идентификатор учетной записи AWS владельца сервиса, пространство имен сервиса и имя сервиса. Возвращается: всегда Пример: |
|
serviceName string |
Строка, заданная пользователем для идентификации сервиса Возвращается: всегда |
|
status string |
Допустимые значения: ACTIVE, DRAINING или INACTIVE. Возвращается: всегда |
|
tags list / elements=dictionary |
Теги, примененные к этому ресурсу. Возвращается: если найдены теги |
|
taskDefinition string |
ARN определения задачи, используемого для задач в сервисе. Возвращается: всегда |
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
service complex | Сведения о созданной службе. Возвращается: при создании службы |
|
capacityProviderStrategy complex добавлено в community.aws 4.0.0 |
Стратегия поставщика ресурсов, используемая службой. Возвращается: всегда |
|
base integer |
Минимальное количество задач, которые должны использовать указанного поставщика. Возвращается: всегда |
|
capacityProvider string |
Имя поставщика ресурсов. Возвращается: всегда |
|
weight integer |
Относительная доля от общего количества запущенных задач, которые должны использовать указанного поставщика. Возвращается: всегда |
|
clusterArn string |
Имя ресурса Amazon (ARN) кластера, в котором размещена служба. Возвращается: всегда |
|
deploymentConfiguration complex |
Словарь deploymentConfiguration Возвращается: всегда |
|
deploymentCircuitBreaker complex |
Словарь deploymentCircuitBreaker Возвращается: всегда |
|
enable boolean |
Состояние функции автоматического выключателя развёртывания. Возвращается: всегда |
|
rollback boolean |
Состояние функции отката автоматического выключателя развёртывания. Возвращается: всегда |
|
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 |
Количество задач в кластере, находящихся в состоянии PENDING. Возвращается: всегда |
|
placementConstraints list / elements=dictionary |
Список объектов ограничений размещения Возвращается: всегда |
|
expression string |
Выражение языка запросов кластера, применяемое к ограничению. Обратите внимание: нельзя указать выражение, если тип ограничения — distinctInstance. Возвращается: всегда |
|
type string |
Тип ограничения. Допустимые значения: distinctInstance и memberOf. Возвращается: всегда |
|
placementStrategy list / elements=dictionary |
Список объектов стратегии размещения Возвращается: всегда |
|
field string |
Поле, к которому применяется стратегия размещения. Для стратегии распределения допустимы значения instanceId (или host, что даёт тот же результат) либо любой атрибут платформы или пользовательский атрибут, назначенный экземпляру контейнера, например attribute:ecs.availability-zone. Для стратегии binpack допустимы значения CPU и MEMORY. Возвращается: всегда |
|
type string |
Тип стратегии размещения. Допустимые значения: random, spread и binpack. Возвращается: всегда |
|
propagateTags string |
Тип распространения тегов, применяемый к ресурсу. Возвращается: всегда |
|
runningCount integer |
Количество задач в кластере, находящихся в состоянии RUNNING. Возвращается: всегда |
|
serviceArn string |
Имя ресурса Amazon (ARN), идентифицирующее службу. ARN содержит пространство имён Возвращается: всегда Пример: |
|
serviceName string |
Строка, заданная пользователем для идентификации службы Возвращается: всегда |
|
status string |
Допустимые значения: ACTIVE, DRAINING или INACTIVE. Возвращается: всегда |
|
tags dictionary |
Теги, применённые к этому ресурсу. Возвращается: при успешном выполнении |
|
taskDefinition string |
ARN определения задачи, используемого для задач в службе. Возвращается: всегда |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/aws/ecs_service_module.html