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 - | Имя кластера, в котором существует служба. | ||
| debug_botocore_endpoint_logs логический тип добавлено в 2.8 |
| Используйте логирование botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», выполненных во время задачи, выводя их в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, сделанного во время выполнения плейбука. Также может использоваться переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS. | |
| 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, если она есть. | ||
| 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 security token. Если не задан, используется значение переменной окружения 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.8/modules/ecs_service_module.html