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 строка |
| Тип запуска, на котором будет работать ваша служба. | |
| 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 строка |
| Стратегия планирования. По умолчанию 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, что имеет тот же эффект), или любой платформенный или пользовательский атрибут, который применяется к контейнерному экземпляру, например, атрибут: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