community.aws.ecs_service – Создание, завершение, запуск или остановка службы в ECS
Примечание
Этот плагин является частью коллекции community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Чтобы использовать его в книге задач, укажите: community.aws.ecs_service.
Добавлено в версии 1.0.0: из 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 Bundle читается на стороне «модуля» и может потребоваться его явное копирование из контроллера, если модуль не запускается локально. | ||
| 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 строка |
| Тип запуска для выполнения вашей службы. | |
| 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 список / элементы=строка | Список имён или ID групп безопасности для ассоциации с задачей. | ||
| subnets список / элементы=строка | Список ID подсетей для ассоциации с задачей. | ||
| 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 строка |
| Стратегия планирования. По умолчанию 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 |
| Желаемое состояние службы. | |
| task_definition string | Определение задачи, которую будет выполнять служба. Этот параметр требуется, когда state=present. | ||
| validate_certs boolean |
| Если установлено «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, что даёт тот же эффект), или любой платформенный или настраиваемый атрибут, применённый к экземпляру контейнера, например, attribute: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 определения задачи, которое нужно использовать для задач в сервисе. | ||
Авторы
- Mark Chance (@Java1Guy)
- Darek Kaczynski (@kaczynskid)
- Stephane Maarek (@simplesteph)
- Zac Blazic (@zacblazic)
© 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/ecs_service_module.html