ecs_service – создание, завершение, запуск или остановка службы в ecs
Новое в версии 2.1.
Синопсис
- Создает или завершает службы 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 - | Имя кластера, в котором существует служба. | ||
| delay - | По умолчанию: 10 | Время ожидания перед проверкой доступности службы. | |
| deployment_configuration - добавлено в 2.3 | Дополнительные параметры, контролирующие deployment_configuration; формат — '{"maximum_percent":<целое число>, "minimum_healthy_percent":<целое число>}' | ||
| desired_count - | Количество экземпляров службы. Этот параметр требуется, когда state=present | ||
| ec2_url - | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковая имеется. | ||
| launch_type - добавлено в 2.7 |
| Тип запуска, на котором будет работать ваша служба. | |
| load_balancers - | Список ELB, определенных для этой службы. | ||
| name - / обязательно | Имя службы. | ||
| network_configuration - | Конфигурация сети службы. Применимо только для определений задач, созданных с awsvpc network_mode.assign_public_ip требует botocore >= 1.8.4 | ||
| assign_public_ip boolean добавлено в 2.7 |
| Указывает, получает ли интерфейс эластичной сети задачи публичный IP-адрес. Этот параметр требует botocore >= 1.8.4. | |
| security_groups - добавлено в 2.6 | Список имен или ID групп безопасности, которые необходимо ассоциировать с задачей. | ||
| subnets - добавлено в 2.6 | Список ID подсетей, которые необходимо ассоциировать с задачей. | ||
| placement_constraints - добавлено в 2.4 | Ограничения размещения для задач в службе. | ||
| placement_strategy - добавлено в 2.4 | Объекты стратегии размещения для задач в вашей службе. Вы можете указать максимум 5 правил стратегии на службу. | ||
| profile - добавлено в 1.6 | Использует профиль 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`. | ||
| security_token - добавлено в 1.6 | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token | ||
| state - / обязательно |
| Желаемое состояние службы. | |
| task_definition - | Определение задачи, которую будет выполнять служба. Этот параметр требуется, когда state=present | ||
| validate_certs boolean добавлено в 1.5 |
| Если установлено значение «нет», сертификаты 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.
- ecs_service:
state: present
name: console-test-service
cluster: new_cluster
task_definition: 'new_cluster-task:1'
desired_count: 0
# Basic provisioning example
- ecs_service:
name: default
state: present
cluster: new_cluster
- 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 complex | при существовании и удалении службы | Подробности удаленной службы в той же структуре, что и при создании службы. |
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | ||
|---|---|---|---|---|
| service complex | при создании службы | Подробности созданной службы. | ||
| clusterArn string | всегда | Amazon Resource Name (ARN) кластера, на котором размещена служба. | ||
| deploymentConfiguration complex | всегда | Словарь deploymentConfiguration | ||
| maximumPercent integer | всегда | Параметр maximumPercent | ||
| minimumHealthyPercent integer | всегда | Параметр minimumHealthyPercent | ||
| deployments список комплексных элементов | всегда | Список развертываний службы. | ||
| desiredCount целое число | всегда | Желаемое количество экземпляров определения задачи, которые необходимо поддерживать в активном состоянии в службе. | ||
| events список комплексных элементов | всегда | Список событий службы. | ||
| loadBalancers complex | всегда | Список объектов балансировщика нагрузки. | ||
| containerName строка | всегда | Имя контейнера, который нужно связать с балансировщиком нагрузки. | ||
| containerPort целое число | всегда | Порт в контейнере, который нужно связать с балансировщиком нагрузки. | ||
| loadBalancerName строка | всегда | имя | ||
| pendingCount целое число | всегда | Количество задач в кластере, находящихся в состоянии ОЖИДАНИЯ. | ||
| placementConstraints список комплексных элементов | всегда | Список объектов ограничений размещения. | ||
| expression строка | всегда | Выражение языка запросов кластера для применения к ограничению. Обратите внимание, что выражение нельзя указать, если тип ограничения — distinctInstance. | ||
| type строка | всегда | Тип ограничения. Допустимые значения — distinctInstance и memberOf. | ||
| placementStrategy список комплексных элементов | всегда | Список объектов стратегии размещения. | ||
| field строка | всегда | Поле, к которому применяется стратегия размещения. Для стратегии размещения spread допустимые значения — instanceId (или host, что имеет тот же эффект), или любое платформа или пользовательское свойство, которое применяется к экземпляру контейнера, например, attribute:ecs.availability-zone. Для стратегии размещения binpack допустимые значения — CPU и MEMORY. | ||
| type строка | всегда | Тип стратегии размещения. Допустимые значения — random, spread и binpack. | ||
| runningCount целое число | всегда | Количество задач в кластере, находящихся в состоянии ВЫПОЛНЕНИЯ. | ||
| 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.7/modules/ecs_service_module.html