ecs_service – создание, завершение, запуск или остановка службы в ecs
Синопсис
- Создаёт или завершает службы ecs.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- boto
- boto3
- botocore
- json
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| aws_access_key строка | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. псевдонимы: ec2_access_key, access_key | ||
| aws_secret_key строка | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. псевдонимы: ec2_secret_key, secret_key | ||
| client_token - | Уникальный, чувствительный к регистру идентификатор, который вы предоставляете для обеспечения идемпотентности запроса. Допускается до 32 ASCII символов. | ||
| cluster - | Имя кластера, в котором существует служба. | ||
| debug_botocore_endpoint_logs логический тип добавлен в 2.8 |
| Используйте логгер botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие» во время задачи, выводя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода в общий список, созданный во время выполнения книги команд. | |
| delay - | Значение по умолчанию: 10 | Время ожидания, прежде чем проверять доступность службы. | |
| deployment_configuration - | Дополнительные параметры, контролирующие deployment_configuration; формат — '{"maximum_percent":<целое число>, "minimum_healthy_percent":<целое число>}' | ||
| desired_count - | Количество экземпляров службы. Этот параметр обязателен, когда state=present. | ||
| ec2_url строка | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковое есть. | ||
| force_new_deployment логический тип добавлен в 2.8 |
| Принудительное развертывание службы даже если изменений нет. | |
| health_check_grace_period_seconds - добавлен в 2.8 | Секунды ожидания перед проверкой работоспособности недавно добавленных/обновлённых служб. Этот параметр требует botocore >= 1.8.20. | ||
| launch_type - добавлен в 2.7 |
| Тип запуска, на котором будет выполняться ваша служба. | |
| load_balancers - | Список ELB, определённых для этой службы. | ||
| name - / обязательно | Имя службы. | ||
| network_configuration - | Настройка сети службы. Применимо только для определений задач, созданных с awsvpc network_mode.assign_public_ip требует botocore >= 1.8.4 | ||
| assign_public_ip логический тип добавлен в 2.7 |
| Присваивать ли задаче публичный IP-адрес. Этот параметр требует botocore >= 1.8.4. | |
| security_groups - добавлен в 2.6 | Список имён или идентификаторов групп безопасности, которые нужно связать с задачей. | ||
| subnets - добавлен в 2.6 | Список идентификаторов подсетей, которые нужно связать с задачей. | ||
| placement_constraints - добавлен в 2.4 | Ограничения размещения для задач в службе. | ||
| placement_strategy - добавлен в 2.4 | Объекты стратегии размещения для задач в вашей службе. Вы можете указать не более 5 правил стратегии на службу. | ||
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. | ||
| 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 - добавлен в 2.8 |
| Стратегия планирования, по умолчанию "REPLICA", если не указано, чтобы сохранить предыдущее поведение. | |
| security_token строка | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token | ||
| service_registries - добавлен в 2.8 | Описывает регистры обнаружения службы, с которыми эта служба будет регистрироваться. | ||
| arn - | ARN регистра обнаружения службы. | ||
| container_name - | Имя контейнера для регистрации обнаружения службы. | ||
| container_port - | Порт контейнера для регистрации обнаружения службы. | ||
| state - / обязательно |
| Желаемое состояние службы. | |
| task_definition - | Определение задачи, которое будет выполняться службой. Этот параметр обязателен, когда state=present. | ||
| validate_certs логический тип |
| При значении "нет" сертификаты 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_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 - 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
- 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
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
- 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)
- 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 сложный | при существовании и удалении службы | Подробная информация об удаленной службе в той же структуре, что и при создании службы. |
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | ||
|---|---|---|---|---|
| service сложный | при создании службы | Подробная информация о созданной службе. | ||
| clusterArn строка | всегда | Amazon Resource Name (ARN) кластера, на котором размещена служба. | ||
| deploymentConfiguration сложный | всегда | Словарь deploymentConfiguration | ||
| maximumPercent целое число | всегда | Параметр maximumPercent | ||
| minimumHealthyPercent целое число | всегда | Параметр minimumHealthyPercent | ||
| deployments список сложных | всегда | Список развертываний службы | ||
| desiredCount целое число | всегда | Желаемое количество экземпляров определения задачи, которые должны выполняться в службе. | ||
| events список сложных | всегда | Список событий службы | ||
| loadBalancers сложный | всегда | Список объектов балансировщика нагрузки | ||
| containerName строка | всегда | Имя контейнера, связанного с балансировщиком нагрузки. | ||
| containerPort целое число | всегда | Порт контейнера, связанный с балансировщиком нагрузки. | ||
| loadBalancerName строка | всегда | Название | ||
| pendingCount целое число | всегда | Количество задач в кластере в состоянии ОЖИДАНИЕ. | ||
| placementConstraints список сложных | всегда | Список объектов ограничений размещения | ||
| expression строка | всегда | Выражение языка запросов кластера для применения ограничения. Обратите внимание, что выражение нельзя указать, если тип ограничения distinctInstance. | ||
| type строка | всегда | Тип ограничения. Допустимые значения — distinctInstance и memberOf. | ||
| placementStrategy список сложных | всегда | Список объектов стратегии размещения | ||
| field строка | всегда | Поле, к которому применяется стратегия размещения. Для стратегии размещения spread допустимые значения — instanceId (или host, что дает тот же эффект), или любой платформенный или пользовательский атрибут, примененный к контейнерному экземпляру, например, атрибут:ecs.availability-zone. Для стратегии размещения binpack допустимые значения — CPU и MEMORY. | ||
| type строка | всегда | Тип стратегии размещения. Допустимые значения — random, spread и binpack. | ||
| runningCount целое число | всегда | Количество задач в кластере в состоянии RUNNING. | ||
| serviceArn строка | всегда | Amazon Resource Name (ARN), идентифицирующий службу. ARN содержит пространство имен arn:aws:ecs, за которым следуют регион службы, идентификатор AWS учетной записи владельца службы, пространство имен службы и затем имя службы. Например, arn:aws:ecs:region:012345678910:service/my-service. | ||
| serviceName строка | всегда | Генерируемая пользователем строка, используемая для идентификации службы | ||
| status строка | всегда | Допустимые значения — ACTIVE, DRAINING или INACTIVE. | ||
| taskDefinition строка | всегда | ARN определения задачи, используемого для задач в службе. | ||
Состояние
- Этот модуль не гарантирует обратную совместимость. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- 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.9/modules/ecs_service_module.html