ECS Taskdefinition
Resumo
- Registra ou cancela o registro de definições de tarefa no Amazon Web Services (AWS) EC2 Container Service (ECS).
Parâmetros
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
arn | string | | O ARN da descrição da tarefa a ser excluída. |
aws_access_key aliases: ec2_access_key, access_key | string | | AWS access key. Se não for definido, o valor da variável AWS_ACCESS_KEY_ID de ambiente AWS_ACCESS_KEY ou EC2_ACCESS_KEY será usado. Se o profile for definido, este parâmetro será ignorado. |
aws_ca_bundle caminho | path | | A localização de um CA Bundle a ser usado ao validar certificados SSL. |
aws_config | dictionary | | Um dicionário para modificar a configuração do botocore. Os parâmetros podem ser encontrados em https://botocore.amazonaws.com. Apenas a chave 'user_agent' é usada para módulos boto. Consulte http://boto.cloudhackers.com para obter mais configurações de boto. |
aws_secret_key aliases: ec2_secret_key, secret_key | string | | AWS secret key. Se não for definido, o valor da variável de ambiente AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY ou EC2_SECRET_KEY será usado. Se o profile for definido, este parâmetro será ignorado. |
containers - required | list / elements=string | | Uma lista de definições de contêineres. Consulte https://boto3.amazonaws.com para obter uma lista completa de parâmetros. |
CPU | string | | O número de unidades de CPU usadas pela tarefa. Se launch_type=EC2 , este campo é opcional e qualquer valor pode ser usado. Se launch_type=FARGATE , este campo é obrigatório e você deve usar um dos 256, 512, 1024, 2048, 4096. |
debug_botocore_endpoint_logs | boolean | Escolhas:
| Use um registrador botocore.endpoint para analisar as chamadas de API exclusivas (em vez do total) “resource:action” feitas durante uma tarefa, enviando o conjunto para a chave resource_actions nos resultados da tarefa. Use o retorno de chamada aws_resource_action para gerar a lista total feita durante um playbook. |
ec2_url aliases: aws_endpoint_url, endpoint_url | string | | URL a ser usada para conectar-se ao EC2 ou à sua nuvem Eucalyptus (por padrão, o módulo usará endpoints do EC2). Ignorado para módulos onde a região é necessária. Deve ser especificado para todos os outros módulos se a região não for usada. Se não for definido, o valor da variável de ambiente EC2_URL, se houver, será usado. |
execução_role_arn | string | | O nome de recurso da Amazon (ARN) da função de execução de tarefas que o agente de contêiner do Amazon ECS e o daemon do Docker podem assumir. |
family | string | | Um Nome que seria dado à definição da tarefa. |
force_create | boolean | Escolhas:
| Sempre crie uma nova definição de tarefa. |
launch_type | string | Escolhas:
| O tipo de inicialização no qual executar sua tarefa. |
memory | string | | A quantidade (em MiB) de memória usada pela tarefa. Se launch_type=EC2 , este campo é opcional e qualquer valor pode ser usado. Se launch_type=FARGATE , este campo é obrigatório e é limitado pela CPU. |
network_mode | string | Escolhas:
| O modo de rede do Docker a ser usado para os contêineres na tarefa. Os contêineres do Windows devem usar network_mode=default , que utilizará a rede NAT do docker. Definir network_mode=default para um contêiner Linux usará o bridgemodo. |
placement_constraints | list / elements=dictionary | | Objetos de restrição de posicionamento a serem usados para a tarefa. Você pode especificar no máximo 10 restrições por tarefa. As restrições de posicionamento de tarefas não são compatíveis com tarefas executadas no Fargate. |
profile aliases: aws_profile | string | | O uso do profile substituirá aws_access_key, aws_secret_key e security_token e o suporte para passá-los ao mesmo tempo em que o profile foi descontinuado. |
região aliases: aws_region, ec2_region | string | | A região da AWS a ser usada. Se não for especificado, o valor da variável de ambiente AWS_REGION ou EC2_REGION, se houver, será usado. Consulte http://docs.aws.amazon.com |
revision | integer | | Um número de revisão para a definição de tarefa. |
security_token aliases: aws_security_token, access_token | string | | AWS STS security token. Se não for definido, o valor da variável de ambiente AWS_SECURITY_TOKENou EC2_SECURITY_TOKENserá usado. Se o perfil for definido, este parâmetro será ignorado. A passagem das opções security_token e profile ao mesmo tempo foi preterida e as opções serão mutuamente exclusivas após 2022-06-01. |
state - required | string | Escolhas:
| Indique se a definição de tarefa deve existir ou ser excluída. |
task_role_arn | string | | O nome de recurso da Amazon (ARN) da função do IAM que os contêineres nesta tarefa podem assumir. Todos os contêineres nesta tarefa recebem as permissões especificadas nessa função. |
valid_certs | boolean | Escolhas:
| Quando definido como “não”, os certificados SSL não serão validados para comunicação com as APIs da AWS. |
volumes lista / elementos=dicionário | list / elements=dictionary | | Uma lista de nomes de volumes a serem anexados. |
Subcampos do parâmetro network_configuration
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários | |||
|---|---|---|---|---|---|---|
command | list / elements=string | | O comando que é passado para o contêiner. | |||
CPU | integer | | O número de unidades de CPU reservadas para o contêiner. | |||
dependsOn | list / elements=dictionary | | As dependências definidas para inicialização e desligamento do contêiner. Quando uma dependência é definida para inicialização de contêiner, para encerramento de contêiner ela é revertida. | |||
disableNetworking boleano | | Escolhas:
| Quando esse parâmetro é True, a rede é desabilitada no contêiner. | |||
dnsSearchDomains | list / elements=string | | Uma lista de domínios de pesquisa DNS que são apresentados ao contêiner. Este parâmetro não é compatível com contêineres do Windows. | |||
dnsServers | list / elements=string | | Uma lista de servidores DNS que são apresentados ao contêiner. Este parâmetro não é compatível com contêineres do Windows. | |||
dockerLabels | dictionary | | Um mapa de chave/valor de rótulos para adicionar ao contêiner. | |||
dockerSecurityOptions | list / elements=string list / elements=string list / elements=string list / elements=string | | Uma lista de strings para fornecer rótulos personalizados para sistemas de segurança multinível SELinux e AppArmor. Este parâmetro não é compatível com contêineres do Windows. | |||
entryPoint | string | | O ponto de entrada que é passado para o contêiner. | |||
environment | list / elements=dictionay | | As variáveis de ambiente a serem passadas para um contêiner. | |||
EnvironmentFiles | list / elements=dictionary | | Uma lista de arquivos contendo as variáveis de ambiente a serem passadas para um contêiner. | |||
essencial | boolean | Escolhas:
| Se essential=True e o contêiner falhar ou parar por qualquer motivo, todos os outros contêineres que fazem parte da tarefa serão interrompidos. | |||
extraHosts | list / elements=dictionary | | Uma lista de nomes de host e mapeamentos de endereço IP para anexar ao arquivo /etc/hosts no contêiner. Este parâmetro não é compatível com contêineres ou tarefas do Windows que usam network_mode=awsvpc . | |||
healthCheck | dictionary | | O comando de verificação de integridade e os parâmetros de configuração associados para o contêiner. | |||
hostname | string | | O nome do host a ser usado para seu contêiner. Este parâmetro não é compatível se network_mode=awsvpc . | |||
image | string | | A imagem usada para iniciar um contêiner. | |||
interactive | boolean | Escolhas:
| Quando interativo=True , ele permite implantar aplicativos em contêiner que exigem que stdin ou um tty sejam alocados. | |||
links | list / elements=string | | Permite que os contêineres se comuniquem entre si sem a necessidade de mapeamentos de portas. Este parâmetro só é suportado se network_mode=bridge . | |||
linuxParameters | dictionary | | Modificações específicas do Linux que são aplicadas ao contêiner, como recursos do kernel do Linux. | |||
capabilities | dictionary | | Os recursos do Linux para o contêiner que são adicionados ou descartados da configuração padrão fornecida pelo Docker. | |||
add | list / elements=string | Escolhas:
| Os recursos do Linux para o contêiner que foram adicionados à configuração padrão fornecida pelo Docker. Se launch_type=FARGATE , este parâmetro não é suportado. | |||
drop | list / elements=string | Escolhas:
| Os recursos do Linux para o contêiner que foram removidos da configuração padrão fornecida pelo Docker. | |||
devices | list / elements=dictionary | | Quaisquer dispositivos host a serem expostos ao contêiner. Se launch_type=FARGATE , este parâmetro não é suportado. | |||
containerPath | string | | O caminho dentro do contêiner no qual expor o dispositivo host. | |||
hostPath - required | string | | O caminho para o dispositivo na instância de contêiner do host. | |||
permissions | list/elements=string | | As permissões explícitas a serem fornecidas ao contêiner para o dispositivo. | |||
initProcessEnabled | boolean | Escolhas:
| Execute um processo de inicialização dentro do contêiner que encaminha sinais e colhe processos. | |||
maxSwap | integer | | A quantidade total de memória de troca (em MiB) que um contêiner pode usar. Se launch_type=FARGATE , este parâmetro não é suportado. | |||
sharedMemorySize | integer | | O valor para o tamanho (em MiB) do volume /dev/shm. Se launch_type=FARGATE , este parâmetro não é suportado. | |||
swappiness | integer | | Isso permite ajustar o comportamento de troca de memória de um contêiner. Se launch_type=FARGATE , este parâmetro não é suportado. | |||
tmpfs | list / elements=dictionary | | O caminho do contêiner, opções de montagem e tamanho (em MiB) da montagem tmpfs. Se launch_type=FARGATE , este parâmetro não é suportado. | |||
containerPath - required | string | | O caminho de arquivo absoluto onde o volume tmpfs deve ser montado. | |||
mountOptions | list / elements=string | Escolhas:
| A lista de opções de montagem de volume tmpfs. | |||
size - required | integer | | O tamanho (em MiB) do volume tmpfs. | |||
logConfiguration | dictionary | | A especificação de configuração de log para o contêiner. | |||
logDriver fragmento | string | | O driver de log a ser usado para o contêiner. Para tarefas no AWS Fargate, os drivers de log compatíveis são awslogs, splunke awsfirelens. Para tarefas hospedadas em instâncias do Amazon EC2, os drivers de log compatíveis são awslogs, fluentd, gelf, json-file, journald, logentries, syslog, splunke awsfirelens. | |||
memory | integer | | A quantidade (em MiB) de memória a ser apresentada ao contêiner. | |||
memoryReservation | integer | | O limite flexível (em MiB) de memória a ser reservado para o contêiner. | |||
mountPoints | list / elements=dictionary | | Os pontos de montagem para volumes de dados em seu contêiner. | |||
containerPath | string | | O caminho no contêiner no qual montar o volume do host. | |||
somente leitura | boolean | Escolhas:
| Se esse valor for True, o contêiner terá acesso somente leitura ao volume. Se esse valor for False, o contêiner poderá gravar no volume. | |||
sourceVolume | string | | O nome do volume a ser montado. | |||
nome | string | | O nome de um contêiner. | |||
opções | string | | As opções de configuração para enviar ao driver de log. | |||
mapeamentos de portas | list/elements=dictionary | | A lista de mapeamentos de porta para o contêiner. | |||
containerPort | integer | | O número da porta no contêiner que está vinculado à porta do host especificada pelo usuário ou atribuída automaticamente. | |||
hostPort | integer | | O número da porta na instância de contêiner a ser reservada para seu contêiner. | |||
protocol | string | Escolhas:
| O protocolo usado para o mapeamento de porta. | |||
privileged | boolean | Escolhas:
| Quando esse parâmetro é True, o contêiner recebe privilégios elevados na instância do contêiner do host. | |||
pseudoTerminal | boolean | Escolhas:
| Quando este parâmetro é True, um TTY é alocado. | |||
readonlyRootFilesystem | boolean | Escolhas:
| Quando esse parâmetro é True, o contêiner recebe acesso somente leitura ao seu sistema de arquivos raiz. | |||
repositoryCredentials | dictionary | | As credenciais de autenticação do repositório privado a serem usadas. | |||
credentialsParameter - required | list/elements=string | | O nome de recurso da Amazon (ARN) do segredo que contém as credenciais do repositório privado. | |||
resourceRequirements | list/elements=string | | O tipo e a quantidade de um recurso a ser atribuído a um contêiner. O único recurso suportado é um arquivo GPU. | |||
secretOptions | list/elements=dictionary | | Os segredos a serem passados para a configuração do log. | |||
name | string | | O nome do segredo. | |||
valueFrom | string | | O segredo para expor ao container. | |||
secrets | list/elements=dictionary | | Os segredos para passar para o contêiner. | |||
name - required | string | | O valor a ser definido como a variável de ambiente no contêiner. | |||
size - required | string | | O segredo para expor ao container. | |||
startTimeout | integer | | Duração do tempo (em segundos) para esperar antes de desistir de resolver as dependências de um contêiner. | |||
stopTimeout | integer | | Duração do tempo (em segundos) para esperar antes que o contêiner seja encerrado à força se não sair normalmente por conta própria. | |||
systemControls | list/elements=string | | Uma lista de parâmetros de kernel com namespace para definir no contêiner. | |||
ulimits | list/elements=dictionary | | Uma lista de ulimits a serem definidos no contêiner. Este parâmetro não é compatível com contêineres do Windows. | |||
hardLimit | integer | | O limite rígido para o tipo ulimit. | |||
name | string | Escolhas:
| O tipo do ulimit. | |||
softLimit | integer | | O limite flexível para o tipo ulimit. | |||
user | string | | O usuário a ser usado dentro do contêiner. Este parâmetro não é compatível com contêineres do Windows. | |||
volumesFrom | list/elements=dictionary | | Volumes de dados a serem montados de outro contêiner. | |||
readOnly | bolean | Escolhas:
| Se esse valor for True, o contêiner terá acesso somente leitura ao volume. Se esse valor for False, o contêiner poderá gravar no volume. | |||
sourceContainer | string | | O nome de outro contêiner dentro da mesma definição de tarefa a partir da qual montar volumes. | |||
workingDirectory | string | | O limite flexível para o tipo ulimit. |
Subcampos do parâmetro placement_constraints
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
expression | string | | Uma expressão de linguagem de consulta de cluster para aplicar à restrição. |
type | string | | O tipo de restrição. |
Subcampos do parâmetro environmentFiles
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
type | string | | O tipo de arquivo a ser usado. O único valor suportado é s3. |
value | string | | O nome de recurso da Amazon (ARN) do objeto do Amazon S3 que contém o arquivo de variável de ambiente. |
Subcampos do parâmetro dependsOn
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
condition - required | string | Escolhas:
| A condição de dependência do contêiner. |
containerName - required | string | | O nome de um contêiner. |
Subcampos do parâmetro extraHosts
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
hostname | string | | O nome do host a ser usado na entrada /etc/hosts. |
ipAddress | string | | O endereço IP a ser usado na entrada /etc/hosts. |
Subcampos do parâmetro volumes
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
name - required | string | | O nome do volume. |
Subcampos do parâmetro environment
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
name | string | | O nome do par chave-valor. |
value | string | | O valor do par chave-valor. |
Notas
Observação
- Se os parâmetros não forem definidos no módulo, as seguintes variáveis de ambiente podem ser usadas em ordem decrescente de precedência:
- AWS_URL ou EC2_URL,
- AWS_PROFILE ou AWS_DEFAULT_PROFILE, AWS_ACCESS_KEY_ID ou AWS_ACCESS_KEY ou EC2_ACCESS_KEY,
- AWS_SECRET_ACCESS_KEY ou AWS_SECRET_KEY ou EC2_SECRET_KEY,
- AWS_SECURITY_TOKEN ou EC2_SECURITY_TOKEN,
- AWS_REGION ou EC2_REGION,
- AWS_CA_BUNDLE
- Quando nenhuma credencial é fornecida explicitamente, o AWS SDK (boto3) que o Ansible usa retornará aos seus arquivos de configuração (normalmente ~/.aws/credentials). Consulte https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html para obter mais informações.
- Módulos baseados no AWS SDK original (boto) podem ler sua configuração padrão de arquivos diferentes. Consulte https://boto.readthedocs.io/en/latest/boto_config_tut.html para obter mais informações.
- AWS_REGION ou EC2_REGION pode ser normalmente usado para especificar a região da AWS, quando necessário, mas isso também pode ser definido nos arquivos de configuração.
Exemplos
- 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
Valores de retorno
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
taskdefinition | dictionary | sempre | um reflexo dos parâmetros de entrada |