Модуль community.aws.ecs_taskdefinition — регистрация определения задачи в ECS
Примечание
Этот модуль входит в коллекцию community.aws (версия 10.1.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните команду ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.aws. Для использования этого модуля необходимы дополнительные требования; подробную информацию см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.aws.ecs_taskdefinition.
Добавлено в community.aws 1.0.0
Краткое описание
- Регистрирует или отменяет регистрацию определений задач в Amazon Web Services (AWS) EC2 Container Service (ECS).
Требования
Следующие требования необходимы на хосте, выполняющем этот модуль.
- python >= 3.6
- boto3 >= 1.34.0
- botocore >= 1.34.0
Параметры
Параметр | Комментарии |
|---|---|
access_key aliases: aws_access_key_id, aws_access_key string | Идентификатор ключа доступа AWS. Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные среды Параметры aws_access_key и profile являются взаимоисключающими. Псевдоним aws_access_key_id добавлен в выпуске 5.1.0 для согласованности с AWS botocore SDK. |
arn string | ARN описания задачи, которое нужно удалить. |
aws_ca_bundle path | Путь к пакету центров сертификации, используемому для проверки SSL-сертификатов. Также можно использовать переменную среды |
aws_config dictionary | Словарь для изменения конфигурации botocore. Параметры перечислены в документации AWS: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
containers list / elements=dictionary / обязательный | Список описаний контейнеров. Полный список параметров см. на странице https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html. |
|
command list / elements=string |
Команда, передаваемая контейнеру. Если аргументов несколько, каждый аргумент указывается в массиве отдельной строкой. |
|
cpu integer |
Количество единиц CPU, зарезервированных для контейнера. |
|
dependsOn list / elements=dictionary |
Зависимости, заданные для запуска и остановки контейнеров. Если для запуска контейнера задана зависимость, при остановке она действует в обратном порядке. |
|
condition string / обязательный |
Условие зависимости контейнера. Возможные значения:
|
|
containerName string / обязательный |
Имя контейнера. |
|
disableNetworking boolean |
Если этот параметр имеет значение Возможные значения:
|
|
dnsSearchDomains list / elements=string |
Список доменов поиска DNS, передаваемых контейнеру. Этот параметр не поддерживается для контейнеров Windows. |
|
dnsServers list / elements=string |
Список DNS-серверов, передаваемых контейнеру. Этот параметр не поддерживается для контейнеров Windows. |
|
dockerLabels dictionary |
Отображение ключей и значений меток, добавляемых в контейнер. |
|
dockerSecurityOptions list / elements=string |
Список строк для задания пользовательских меток для систем многоуровневой безопасности SELinux и AppArmor. Этот параметр не поддерживается для контейнеров Windows. |
|
entryPoint string |
Точка входа, передаваемая контейнеру. |
|
environment list / elements=dictionary |
Переменные среды, передаваемые контейнеру. |
|
name string |
Имя пары «ключ — значение». |
|
value string |
Значение пары «ключ — значение». |
|
environmentFiles list / elements=dictionary |
Список файлов с переменными среды, передаваемыми контейнеру. |
|
type string |
Тип используемого файла. Поддерживается только значение |
|
value string |
Имя ресурса Amazon (ARN) объекта Amazon S3, содержащего файл переменных среды. |
|
essential boolean | Если essential=True, а контейнер по какой-либо причине завершает работу или останавливается, все остальные контейнеры, входящие в задачу, также останавливаются. Возможные значения:
|
|
extraHosts list / elements=dictionary | Список сопоставлений имен узлов и IP-адресов, добавляемых в файл /etc/hosts контейнера. Этот параметр не поддерживается для контейнеров Windows и задач, использующих network_mode=awsvpc. |
|
hostname string | Имя узла для записи в /etc/hosts. |
|
ipAddress string | IP-адрес для записи в /etc/hosts. |
|
firelensConfiguration dictionary | Конфигурация FireLens для контейнера. Используется для указания и настройки маршрутизатора журналов для журналов контейнеров. |
|
options dictionary | Параметры настройки маршрутизатора журналов. Это необязательное поле можно использовать для указания пользовательского файла конфигурации или добавления дополнительных метаданных, например сведений о задаче, ее определении, кластере и экземпляре контейнера, в событие журнала. Если параметр указан, используйте синтаксис Дополнительные сведения см. на странице https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef. |
|
type string | Используемый маршрутизатор журналов. Допустимые значения: Возможные значения:
|
|
healthCheck dictionary | Команда проверки работоспособности и связанные с ней параметры конфигурации контейнера. |
|
command list / elements=string | Массив строк, представляющий команду, которую выполняет контейнер для проверки своей работоспособности. Массив строк должен начинаться с CMD, чтобы выполнить аргументы команды напрямую, или с CMD-SHELL, чтобы выполнить команду с помощью оболочки контейнера по умолчанию. Код завершения 0 означает успешное выполнение, а ненулевой код — ошибку. |
|
interval integer | Интервал в секундах между выполнениями проверок работоспособности. Можно указать значение от 5 до 300 секунд. Значение по умолчанию — 30 секунд. По умолчанию: |
|
retries integer | Количество повторных попыток после неудачной проверки работоспособности, прежде чем контейнер будет признан неисправным. Можно указать от 1 до 10 повторных попыток. Значение по умолчанию — 3. По умолчанию: |
|
startPeriod integer | Необязательный льготный период, предоставляемый контейнеру для запуска до того, как неудачные проверки работоспособности начнут учитываться при подсчете максимального количества повторных попыток. Можно указать значение от 0 до 300 секунд. По умолчанию startPeriod отключен. Примечание: если проверка работоспособности проходит успешно в течение startPeriod, контейнер считается работоспособным, а последующие сбои учитываются при подсчете максимального количества повторных попыток. |
|
timeout integer | Время ожидания успешного завершения проверки работоспособности в секундах, после которого она считается неудачной. Можно указать значение от 2 до 60 секунд. Значение по умолчанию — 5. По умолчанию: |
|
hostname string | Имя узла, используемое для контейнера. Этот параметр не поддерживается, если используется network_mode=awsvpc. |
|
image string | Образ, используемый для запуска контейнера. |
|
interactive boolean | При значении interactive=True можно развертывать контейнеризированные приложения, которым требуется выделенный stdin или tty. Возможные значения:
|
|
links list / elements=string | Позволяет контейнерам взаимодействовать друг с другом без сопоставления портов. Этот параметр поддерживается только при использовании network_mode=bridge. |
|
linuxParameters dictionary | Изменения для Linux, применяемые к контейнеру, например возможности ядра Linux. |
|
capabilities dictionary | Возможности Linux контейнера, добавляемые в конфигурацию Docker по умолчанию или удаляемые из нее. |
|
add list / elements=string | Возможности Linux контейнера, добавляемые в конфигурацию Docker по умолчанию. Этот параметр не поддерживается при launch_type=FARGATE. Возможные значения:
|
|
drop list / elements=string | Возможности Linux контейнера, удаляемые из конфигурации Docker по умолчанию. Возможные значения:
|
|
devices list / elements=dictionary | Любые устройства узла, предоставляемые контейнеру. Этот параметр не поддерживается при launch_type=FARGATE. |
|
containerPath string | Путь внутри контейнера, по которому предоставляется устройство узла. |
|
hostPath string / обязательный | Путь к устройству на экземпляре контейнера узла. |
|
permissions list / elements=string | Явные разрешения, предоставляемые контейнеру для устройства. |
|
initProcessEnabled boolean | Запускать внутри контейнера процесс init, который перенаправляет сигналы и удаляет завершившиеся процессы. Возможные значения:
|
|
maxSwap integer | Общий объем памяти подкачки (в МиБ), которую может использовать контейнер. Этот параметр не поддерживается при launch_type=FARGATE. |
|
integer |
Значение размера тома /dev/shm (в МиБ). Если launch_type=FARGATE, этот параметр не поддерживается. |
|
swappiness integer |
Позволяет настроить поведение контейнера при вытеснении памяти на диск. Если launch_type=FARGATE, этот параметр не поддерживается. |
|
tmpfs list / elements=dictionary |
Путь в контейнере, параметры монтирования и размер (в МиБ) точки монтирования tmpfs. Если launch_type=FARGATE, этот параметр не поддерживается. |
|
containerPath string / обязательный |
Абсолютный путь к файлу, по которому монтируется том tmpfs. |
|
mountOptions list / elements=string |
Список параметров монтирования тома tmpfs. Варианты:
|
|
size integer / обязательный |
Размер тома tmpfs (в МиБ). |
|
logConfiguration dictionary |
Спецификация конфигурации ведения журнала для контейнера. |
|
logDriver string |
Драйвер журналирования, используемый для контейнера. Для задач в AWS Fargate поддерживаются следующие драйверы журналирования: Для задач, размещенных на экземплярах Amazon EC2, поддерживаются следующие драйверы журналирования: |
|
memory integer |
Объем памяти (в МиБ), предоставляемый контейнеру. |
|
memoryReservation integer |
Мягкое ограничение объема памяти (в МиБ), резервируемого для контейнера. |
|
mountPoints list / elements=dictionary |
Точки монтирования томов данных в контейнере. |
|
containerPath string |
Путь в контейнере, по которому монтируется том узла. |
|
readOnly boolean |
Если значение равно Если значение равно Варианты:
|
|
sourceVolume string |
Имя монтируемого тома. |
|
name string |
Имя контейнера. |
|
options string |
Параметры конфигурации, передаваемые драйверу журналирования. |
|
portMappings list / elements=dictionary |
Список сопоставлений портов для контейнера. |
|
containerPort integer |
Номер порта контейнера, связанного с указанным пользователем или автоматически назначенным портом узла. |
|
hostPort integer |
Номер порта экземпляра контейнера, резервируемого для контейнера. |
|
protocol string |
Протокол, используемый для сопоставления портов. Варианты:
|
|
privileged boolean |
Если этому параметру задано значение Варианты:
|
|
pseudoTerminal boolean |
Если этому параметру задано значение Варианты:
|
|
readonlyRootFilesystem boolean |
Если этому параметру задано значение Варианты:
|
|
repositoryCredentials dictionary |
Учетные данные для аутентификации в частном репозитории. |
|
credentialsParameter string / обязательный |
Имя ресурса Amazon (ARN) секрета, содержащего учетные данные для частного репозитория. |
|
resourceRequirements list / elements=dictionary |
Тип и объем ресурса, назначаемого контейнеру. Поддерживаются только ресурсы |
|
type string |
Тип ресурса, назначаемого контейнеру. Варианты:
|
|
value string |
Значение для указанного типа ресурса. |
|
secretOptions list / elements=dictionary |
Секреты, передаваемые в конфигурацию журналирования. |
|
name string |
Имя секрета. |
|
valueFrom string |
Секрет, предоставляемый контейнеру. |
|
secrets list / elements=dictionary |
Секреты, передаваемые контейнеру. |
|
name string / обязательный |
Значение, устанавливаемое в качестве переменной среды контейнера. |
|
size string / обязательный |
Секрет, предоставляемый контейнеру. |
|
startTimeout integer |
Время ожидания (в секундах) перед прекращением попыток разрешить зависимости контейнера. |
|
stopTimeout integer |
Время ожидания (в секундах), по истечении которого контейнер принудительно завершается, если он не остановился самостоятельно обычным образом. |
|
systemControls list / elements=dictionary |
Список параметров ядра с пространствами имен, задаваемых в контейнере. |
|
namespace string |
Параметр ядра с пространством имен, для которого задается |
|
value string |
Значение параметра ядра с пространством имен, указанного в |
|
ulimits list / elements=dictionary |
Список ограничений ulimit, задаваемых в контейнере. Этот параметр не поддерживается для контейнеров Windows. |
|
hardLimit integer |
Жесткое ограничение для типа ulimit. |
|
name string |
Тип ограничения ulimit. Варианты:
|
|
softLimit integer |
Мягкое ограничение для типа ulimit. |
|
user string |
Пользователь, от имени которого выполняются действия внутри контейнера. Этот параметр не поддерживается для контейнеров Windows. |
|
volumesFrom list / elements=dictionary |
Тома данных, монтируемые из другого контейнера. |
|
readOnly boolean |
Если значение равно Если значение равно Варианты:
|
|
sourceContainer string |
Имя другого контейнера в том же определении задачи, из которого следует монтировать тома. |
|
workingDirectory string |
Рабочий каталог для выполнения команд внутри контейнера. |
cpu string | Количество единиц CPU, используемых задачей. Если launch_type=EC2, это поле необязательное и может принимать любое значение. Если launch_type=FARGATE, это поле обязательно, и необходимо использовать одно из значений: |
debug_botocore_endpoint_logs boolean | Используйте регистратор Также можно использовать переменную среды Варианты:
|
endpoint_url псевдонимы: aws_endpoint_url string | URL-адрес для подключения вместо конечных точек AWS по умолчанию. Хотя его можно использовать для подключения к другим сервисам, совместимым с AWS, коллекции amazon.aws и community.aws тестируются только с AWS. Также можно использовать переменную среды |
execution_role_arn string | Имя ресурса Amazon (ARN) роли выполнения задачи, которую могут принять агент контейнеров Amazon ECS и демон Docker. По умолчанию: |
family string | Имя, присваиваемое определению задачи. |
force_create boolean | Всегда создавать новое определение задачи. Варианты:
|
launch_type string | Тип запуска, используемый для выполнения задачи. Варианты:
|
memory string | Объём памяти (в МиБ), используемый задачей. Если launch_type=EC2, это поле необязательно, и можно использовать любое значение. Если launch_type=FARGATE, это поле обязательно, а его значение ограничено объёмом ЦП. |
network_mode string | Режим сетевого взаимодействия Docker, используемый контейнерами в задаче. Для контейнеров Windows необходимо использовать network_mode=default, при котором используется сетевая технология Docker NAT. При установке network_mode=default для контейнера Linux будет использоваться режим Варианты:
|
placement_constraints list / elements=dictionary добавлено в community.aws 2.1.0 | Объекты ограничений размещения, используемые для задачи. Для одной задачи можно указать не более 10 ограничений. Ограничения размещения задач не поддерживаются для задач, выполняемых в Fargate. |
|
expression string |
Выражение языка запросов кластера, применяемое к ограничению. |
|
type string |
Тип ограничения. |
profile псевдонимы: aws_profile string | Именованный профиль AWS для аутентификации. Дополнительные сведения об именованных профилях см. в документации AWS: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Также можно использовать переменную окружения Параметр profile несовместим с параметрами aws_access_key, aws_secret_key и session_token. |
region псевдонимы: aws_region string | Регион AWS для использования. Для глобальных служб, таких как IAM, Route53 и CloudFront, параметр region игнорируется. Также можно использовать переменную окружения Дополнительные сведения см. в документации Amazon AWS: http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. |
revision integer | Номер редакции определения задачи. |
runtime_platform dictionary добавлено в community.aws 6.4.0 | Настройка платформы выполнения для задачи По умолчанию: |
|
cpuArchitecture string |
Тип архитектуры ЦП, используемый задачей Варианты:
|
|
operatingSystemFamily string |
Тип ОС, используемый задачей Варианты:
|
secret_key псевдонимы: aws_secret_access_key, aws_secret_key string | Секретный ключ доступа AWS. Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные окружения Параметры secret_key и profile несовместимы. Псевдоним aws_secret_access_key добавлен в выпуске 5.1.0 для согласованности с SDK AWS botocore. |
session_token псевдонимы: aws_session_token string | Токен сеанса AWS STS для использования с временными учётными данными. Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменную окружения Параметры session_token и profile несовместимы. |
state string / обязательный | Указывает, должно ли определение задачи существовать или быть удалено. Варианты:
|
task_role_arn string | Amazon Resource Name (ARN) роли IAM, которую могут использовать контейнеры этой задачи. Всем контейнерам этой задачи предоставляются разрешения, указанные для этой роли. По умолчанию: |
validate_certs boolean | Если установлено значение Настоятельно не рекомендуется задавать validate_certs=false; вместо этого рассмотрите возможность указать aws_ca_bundle. Варианты:
|
volumes list / elements=dictionary | Список имён подключаемых томов. |
|
name string / обязательный |
Имя тома. |
Примечания
Примечание
- Внимание: Для модулей переменные окружения и файлы конфигурации считываются из контекста Ansible «хоста», а не из контекста «контроллера». Поэтому может потребоваться явно скопировать файлы на «хост». Для плагинов поиска и подключения переменные окружения и файлы конфигурации считываются из контекста Ansible «контроллера», а не из контекста «хоста».
- Используемый Ansible пакет AWS SDK (boto3) также может считывать значения учётных данных и других параметров по умолчанию, например региона, из файлов конфигурации в контексте Ansible «хоста» (обычно
~/.aws/credentials). Дополнительные сведения см. на странице https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.
Примеры
- name: Create task definition
community.aws.ecs_taskdefinition:
containers:
- name: simple-app
cpu: 10
essential: true
image: "httpd:2.4"
memory: 300
mountPoints:
- containerPath: /usr/local/apache2/htdocs
sourceVolume: my-vol
portMappings:
- containerPort: 80
hostPort: 80
logConfiguration:
logDriver: awslogs
options:
awslogs-group: /ecs/test-cluster-taskdef
awslogs-region: us-west-2
awslogs-stream-prefix: ecs
- name: busybox
command:
- >
/bin/sh -c "while true; do echo '<html><head><title>Amazon ECS Sample App</title></head><body><div><h1>Amazon ECS Sample App</h1>
<h2>Congratulations!</h2>
<p>Your application is now running on a container in Amazon ECS.</p>' > top; /bin/date > date ; echo '</div></body></html>' > bottom;
cat top date bottom > /usr/local/apache2/htdocs/index.html ; sleep 1; done"
cpu: 10
entryPoint:
- sh
- "-c"
essential: false
image: busybox
memory: 200
volumesFrom:
- sourceContainer: simple-app
volumes:
- name: my-vol
family: test-cluster-taskdef
state: present
register: task_output
- name: Create task definition
community.aws.ecs_taskdefinition:
family: nginx
containers:
- name: nginx
essential: true
image: "nginx"
portMappings:
- containerPort: 8080
hostPort: 8080
cpu: 512
memory: 1024
state: present
- name: Create task definition
community.aws.ecs_taskdefinition:
family: nginx
containers:
- name: nginx
essential: true
image: "nginx"
portMappings:
- containerPort: 8080
hostPort: 8080
launch_type: FARGATE
cpu: 512
memory: 1024
state: present
network_mode: awsvpc
- name: Create task definition
community.aws.ecs_taskdefinition:
family: nginx
containers:
- name: nginx
essential: true
image: "nginx"
portMappings:
- containerPort: 8080
hostPort: 8080
cpu: 512
memory: 1024
dependsOn:
- containerName: "simple-app"
condition: "start"
# Create Task Definition with Environment Variables and Secrets
- name: Create task definition
community.aws.ecs_taskdefinition:
family: nginx
containers:
- name: nginx
essential: true
image: "nginx"
environment:
- name: "PORT"
value: "8080"
secrets:
# For variables stored in Secrets Manager
- name: "NGINX_HOST"
valueFrom: "arn:aws:secretsmanager:us-west-2:123456789012:secret:nginx/NGINX_HOST"
# For variables stored in Parameter Store
- name: "API_KEY"
valueFrom: "arn:aws:ssm:us-west-2:123456789012:parameter/nginx/API_KEY"
launch_type: FARGATE
cpu: 512
memory: 1GB
state: present
network_mode: awsvpc
# Create Task Definition with health check
- name: Create task definition
community.aws.ecs_taskdefinition:
family: nginx
containers:
- name: nginx
essential: true
image: "nginx"
portMappings:
- containerPort: 8080
hostPort: 8080
cpu: 512
memory: 1024
healthCheck:
command:
- CMD-SHELL
- /app/healthcheck.py
interval: 60
retries: 3
startPeriod: 15
timeout: 15
state: present
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже приведены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
taskdefinition dictionary | отражение входных параметров Возвращается: всегда |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/aws/ecs_taskdefinition_module.html