community.aws.ecs_taskdefinition – регистрация определения задачи в ecs
Примечание
Этот плагин входит в состав коллекции community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Для использования в книге задач укажите: community.aws.ecs_taskdefinition.
Новое в версии 1.0.0: из community.aws
Обзор
- Регистрирует или удаляет определения задач в Amazon Web Services (AWS) EC2 Container Service (ECS).
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- boto
- boto3
- botocore
- json
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| arn строка | ARN определения задачи для удаления. | ||
| aws_access_key строка | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Если задан параметр profile, этот параметр игнорируется. Одновременное указание параметров aws_access_key и profile устарело и параметры будут сделаны взаимоисключающими после 2022-06-01. псевдонимы: ec2_access_key, access_key | ||
| aws_ca_bundle путь | Расположение пакета CA для проверки SSL-сертификатов. Используется только для модулей на основе boto3. Примечание: пакет CA считывается со стороны модуля и, возможно, должен быть явно скопирован с контроллера, если он не запускается локально. | ||
| aws_config словарь | Словарь для изменения конфигурации botocore. Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Только ключ 'user_agent' используется для модулей boto. См. http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto для получения дополнительной информации о конфигурации boto. | ||
| aws_secret_key строка | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Если задан параметр profile, этот параметр игнорируется. Одновременное указание параметров aws_secret_key и profile устарело и параметры будут сделаны взаимоисключающими после 2022-06-01. псевдонимы: ec2_secret_key, secret_key | ||
| containers список / элементы=словарь | Список определений контейнеров. | ||
| cpu строка | Количество единиц ЦП, используемых задачей. Если используется тип запуска EC2, это поле необязательно и может использоваться любое значение. Если используется тип запуска Fargate, это поле обязательно, и необходимо использовать одно из 256, 512, 1024, 2048, 4096. | ||
| debug_botocore_endpoint_logs булево |
| Использовать регистрирующий элемент botocore для анализа уникальных (а не общих) API-вызовов "ресурс:действие", выполненных во время задачи, выводимых в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action, чтобы вывести полный список, выполненный во время книги задач. Также может быть использована переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS. | |
| ec2_url строка | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной среды EC2_URL, если она существует. псевдонимы: aws_endpoint_url, endpoint_url | ||
| execution_role_arn строка | Amazon Resource Name (ARN) роли выполнения задачи, которую могут принять агент контейнеров Amazon ECS и демон Docker. | ||
| family строка | Имя, которое будет присвоено определению задачи. | ||
| force_create булево |
| Всегда создавать новое определение задачи. | |
| launch_type строка |
| Тип запуска, на котором необходимо запустить задачу. | |
| memory строка | Объем (в МБ) памяти, используемой задачей. Если используется тип запуска EC2, это поле необязательно и может использоваться любое значение. Если используется тип запуска Fargate, это поле обязательно и ограничено ЦП. | ||
| network_mode строка |
| Режим сети Docker для контейнеров в задаче. awsvpc режим был добавлен в Ansible 2.5Контейнеры Windows должны использовать network_mode=default, что будет использовать сеть NAT docker. Указание network_mode=default для контейнера Linux будет использовать режим моста. | |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. Использование profile переопределит aws_access_key, aws_secret_key и security_token и поддержка одновременного указания с profile устарела.
aws_access_key, aws_secret_key и security_token будут сделаны взаимоисключающими с profile после 2022-06-01. псевдонимы: aws_profile | ||
| region строка | AWS-регион для использования. Если не указан, используется значение переменной среды AWS_REGION или EC2_REGION, если она существует. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
псевдонимы: aws_region, ec2_region | ||
| revision целое число | Номер ревизии для определения задачи. | ||
| security_token строка | AWS STS security token. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если задан параметр profile, этот параметр игнорируется. Одновременное указание параметров security_token и profile устарело и параметры будут сделаны взаимоисключающими после 2022-06-01. псевдонимы: aws_security_token, access_token | ||
| state строка / обязательно |
| Указывает, должно ли определение задачи существовать или быть удалено. | |
| task_role_arn строка | Amazon Resource Name (ARN) IAM-роли, которую могут принять контейнеры в этой задаче. Все контейнеры в этой задаче получают разрешения, указанные в этой роли. | ||
| validate_certs булево |
| При установке в значение "нет", SSL-сертификаты для версий boto >= 2.6.0 не будут проверяться. | |
| volumes список / элементы=словарь | Список имён томов для подключения. | ||
| name строка / обязательно | Имя тома. | ||
Примечания
Примечание
- Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета:
AWS_URLилиEC2_URL,AWS_PROFILEилиAWS_DEFAULT_PROFILE,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,AWS_CA_BUNDLE. - Ansible использует конфигурационный файл boto (как правило, ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONобычно могут использоваться для указания AWS-региона, если это требуется, но это также можно настроить в конфигурационном файле boto
Примеры
- 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
# 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
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое | Описание |
|---|---|---|
| taskdefinition словарь | всегда | отражение входных параметров |
Авторы
- Марк Ченс (@Java1Guy)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/aws/ecs_taskdefinition_module.html