Модуль community.aws.ecs_taskdefinition – регистрация определения задачи в ECS
Примечание
Этот модуль входит в коллекцию community.aws (версия 8.0.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.26.0
- botocore >= 1.29.0
Параметры
Параметр | Комментарии |
|---|---|
access_key aliases: aws_access_key_id, aws_access_key, ec2_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. Псевдоним ec2_access_key устарел и будет удален в релизе после 2024-12-01. Поддержка переменной среды |
arn string | ARN описания задачи для удаления. |
aws_ca_bundle path | Расположение пакета CA, используемого при проверке SSL-сертификатов. Переменная среды |
aws_config dictionary | Словарь для изменения конфигурации botocore. Параметры можно найти в документации AWS https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
containers list / elements=dictionary / required | Список определений контейнеров. См. https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html для полного списка параметров. |
|
command list / elements=string |
Команда, передаваемая в контейнер. Если есть несколько аргументов, каждый аргумент представляет собой отдельную строку в массиве. |
|
cpu integer |
Количество зарезервированных для контейнера единиц ЦП. |
|
dependsOn list / elements=dictionary |
Зависимости, определенные для запуска и остановки контейнера. Когда зависимость определена для запуска контейнера, для остановки контейнера она инвертируется. |
|
condition string / required |
Условие зависимости контейнера. Варианты:
|
|
containerName string / required |
Имя контейнера. |
|
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 |
Универсальное имя ресурса (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, этот параметр не поддерживается. Choices:
|
|
drop list / elements=string |
Возможности Linux для контейнера, которые были удалены из конфигурации по умолчанию, предоставленной Docker. Choices:
|
|
devices list / elements=dictionary |
Любые устройства хоста, которые нужно предоставить контейнеру. Если launch_type=FARGATE, этот параметр не поддерживается. |
|
containerPath string |
Путь внутри контейнера, в котором должно быть предоставлено устройство хоста. |
|
hostPath string / required |
Путь к устройству на экземпляре хост-контейнера. |
|
permissions list / elements=string |
Явные права доступа, которые необходимо предоставить контейнеру для устройства. |
|
initProcessEnabled boolean |
Запустить init-процесс внутри контейнера, который перенаправляет сигналы и завершает процессы. Choices:
|
|
maxSwap integer |
Общее количество памяти подкачки (в MiB), которую может использовать контейнер. Если launch_type=FARGATE, этот параметр не поддерживается. |
|
integer |
Значение размера (в MiB) тома /dev/shm. Если launch_type=FARGATE, этот параметр не поддерживается. |
|
swappiness integer |
Это позволяет настроить поведение обмена памяти контейнера. Если launch_type=FARGATE, этот параметр не поддерживается. |
|
tmpfs list / elements=dictionary |
Путь контейнера, параметры монтирования и размер (в MiB) монтирования tmpfs. Если launch_type=FARGATE, этот параметр не поддерживается. |
|
containerPath string / required |
Абсолютный путь к файлу, куда будет смонтирован том tmpfs. |
|
mountOptions list / elements=string |
Список параметров монтирования тома tmpfs. Варианты:
|
|
size integer / required |
Размер (в MiB) тома tmpfs. |
|
logConfiguration dictionary |
Спецификация конфигурации журнала для контейнера. |
|
logDriver string |
Драйвер журнала для использования в контейнере. Для задач на AWS Fargate поддерживаются драйверы журналов Для задач, размещенных на экземплярах Amazon EC2, поддерживаются драйверы журналов |
|
memory integer |
Объем (в MiB) памяти, предоставляемый контейнеру. |
|
memoryReservation integer |
Мягкий лимит (в MiB) памяти, резервируемый для контейнера. |
|
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 / required |
Универсальное имя ресурса (ARN) секрета, содержащего учётные данные частного репозитория. |
|
resourceRequirements list / elements=dictionary |
Тип и количество ресурсов для назначения контейнеру. Поддерживаемые ресурсы: |
|
type string |
Тип ресурса для назначения контейнеру. Варианты:
|
|
value string |
Значение для указанного типа ресурса. |
|
secretOptions list / elements=dictionary |
Секреты для передачи в конфигурацию журнала. |
|
name string |
Имя секрета. |
|
valueFrom string |
Секрет для предоставления контейнеру. |
|
secrets list / elements=dictionary |
Секреты для передачи в контейнер. |
|
name string / required |
Значение для установки в качестве переменной окружения в контейнере. |
|
size string / required |
Секрет для предоставления контейнеру. |
|
startTimeout integer |
Длительность времени (в секундах) ожидания перед отказом от разрешения зависимостей для контейнера. |
|
stopTimeout integer |
Длительность времени (в секундах) ожидания, прежде чем контейнер будет принудительно завершён, если он не завершится нормально самостоятельно. |
|
systemControls list / elements=dictionary |
Список параметров ядра с пространством имён для установки в контейнере. |
|
namespace string |
Параметр ядра с пространством имён для установки |
|
value string |
Значение для параметра ядра с пространством имён, указанного в |
|
ulimits list / elements=dictionary |
Список ulimits для установки в контейнере. Этот параметр не поддерживается для контейнеров Windows. |
|
hardLimit integer |
Жёсткий лимит для типа ulimit. |
|
name string |
Тип ulimit. Варианты:
|
|
softLimit integer |
Мягкий лимит для типа ulimit. |
|
user string |
Пользователь для использования внутри контейнера. Этот параметр не поддерживается для контейнеров Windows. |
|
volumesFrom список / элементы=словарь |
Тома данных для монтирования из другого контейнера. |
|
readOnly логическое |
Если это значение равно Если это значение равно Варианты:
|
|
sourceContainer строка |
Имя другого контейнера в рамках того же определения задачи, из которого нужно смонтировать тома. |
|
workingDirectory строка |
Рабочий каталог, в котором будут выполняться команды внутри контейнера. |
cpu строка | Количество единиц ЦП, используемых задачей. Если launch_type=EC2, это поле необязательно и можно использовать любое значение. Если launch_type=FARGATE, это поле обязательно и необходимо использовать одно из |
debug_botocore_endpoint_logs логическое | Использовать Также можно использовать переменную окружения Варианты:
|
endpoint_url псевдонимы: ec2_url, aws_endpoint_url, s3_url строка | URL для подключения вместо стандартных AWS-эндпоинтов. Хотя это можно использовать для подключения к другим совместимым с AWS службам, коллекции amazon.aws и community.aws протестированы только с AWS. Также можно использовать переменные окружения Псевдонимы ec2_url и s3_url устарели и будут удалены после 2024-12-01. Поддержка переменной окружения |
execution_role_arn строка | Идентификатор ресурса Amazon (ARN) роли выполнения задачи, которую могут принять агент контейнеров Amazon ECS и демон Docker. По умолчанию: |
family строка | Имя, которое будет присвоено определению задачи. |
force_create логическое | Всегда создавать новое определение задачи. Варианты:
|
launch_type строка | Тип запуска, на котором будет выполняться задача. Варианты:
|
memory строка | Объем памяти (в МБ), используемый задачей. Если launch_type=EC2, это поле необязательно и можно использовать любое значение. Если launch_type=FARGATE, это поле обязательно и ограничено процессором. |
network_mode строка | Режим работы Docker сети для контейнеров в задаче. Контейнеры Windows должны использовать network_mode=default, который будет использовать сетевую работу docker NAT. Установка network_mode=default для контейнера Linux будет использовать Варианты:
|
placement_constraints список / элементы=словарь добавлен в community.aws 2.1.0 | Объекты ограничений размещения для использования в задаче. Вы можете указать максимум 10 ограничений на задачу. Ограничения размещения задач не поддерживаются для задач, выполняемых на Fargate. |
|
expression строка |
Выражение языка запросов кластера для применения к ограничению. |
|
type строка |
Тип ограничения. |
profile псевдонимы: aws_profile строка | Используемый про-файл AWS для аутентификации. См. документацию AWS для получения дополнительной информации о настраиваемых профилях https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Также можно использовать переменную окружения Опция profile исключает опции aws_access_key, aws_secret_key и security_token. |
регион псевдонимы: aws_region, ec2_region строка | AWS регион для использования. Для глобальных служб, таких как IAM, Route53 и CloudFront, регион игнорируется. Также могут использоваться переменные среды Дополнительную информацию см. в документации Amazon AWS по ссылке http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. Псевдоним Поддержка переменной среды |
номер_ревизии целое_число | Номер ревизии для определения задачи. |
платформа_выполнения словарь добавлено в community.aws 6.4.0 | Настройка платформы выполнения для задачи По умолчанию: |
|
архитектура_процессора строка |
Тип архитектуры процессора, который будет использоваться задачей Доступные значения:
|
|
семейство_операционных_систем строка |
Тип ОС, который будет использоваться задачей Доступные значения:
|
секретный_ключ псевдонимы: aws_secret_access_key, aws_secret_key, ec2_secret_key строка | Секретный ключ доступа 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. Псевдоним ec2_secret_key устарел и будет удален в выпуске после 2024-12-01. Поддержка переменной среды |
токен_сессии псевдонимы: aws_session_token, security_token, aws_security_token, access_token строка | Токен сессии AWS STS для использования с временными учетными данными. Дополнительную информацию об маркерах доступа см. в документации AWS по ссылке https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также могут использоваться переменные среды Параметры security_token и profile взаимоисключающие. Псевдонимы aws_session_token и session_token были добавлены в релизе 3.2.0, а параметр был переименован из security_token в session_token в релизе 6.0.0. Псевдонимы security_token, aws_security_token и access_token устарели и будут удалены в выпуске после 2024-12-01. Поддержка переменных среды |
состояние строка / обязательно | Указывает, должно ли определение задачи существовать или быть удалено. Доступные значения:
|
arn_роли_задачи строка | Идентификатор ресурса Amazon (ARN) роли IAM, которую контейнеры в этой задаче могут принять. Все контейнеры в этой задаче получают разрешения, указанные в этой роли. По умолчанию: |
валидировать_сертификаты логическое_значение | При значении Установку validate_certs=false настоятельно не рекомендуется; вместо этого рассмотрите возможность установки aws_ca_bundle. Доступные значения:
|
тома список / элементы=словарь | Список имен томов, которые должны быть подключены. |
|
имя строка / обязательно |
Имя тома. |
Примечания
Примечание
- Внимание: Для модулей переменные среды и файлы конфигурации считываются из контекста Ansible «хост», а не «контроллер». Таким образом, файлы могут потребоваться явно скопировать на «хост». Для плагинов поиска и подключения переменные среды и файлы конфигурации считываются из контекста Ansible «контроллер», а не «хост».
- AWS SDK (boto3), который использует Ansible, также может считывать значения по умолчанию для учетных данных и других настроек, таких как регион, из своих файлов конфигурации в контексте 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 словарь | отражение входных параметров Возвращается: всегда |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/aws/ecs_taskdefinition_module.html