community.aws.ecs_task – Run, start or stop a task in ecs
Note
This plugin is part of the community.aws collection (version 1.5.0).
You might already have this collection installed if you are using the ansible
package. It is not included in ansible-core
. To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.aws
.
To use it in a playbook, specify: community.aws.ecs_task
.
New in version 1.0.0: of community.aws
Synopsis
- Creates or deletes instances of task definitions.
Requirements
The below requirements are needed on the host that executes this module.
- boto
- boto3
- botocore
- json
- python >= 2.6
Parameters
Parameter | Choices/Defaults | Comments | |
---|---|---|---|
aws_access_key string | AWS access key. If not set then the value of the AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY or EC2_ACCESS_KEY environment variable is used. If profile is set this parameter is ignored. Passing the aws_access_key and profile options at the same time has been deprecated and the options will be made mutually exclusive after 2022-06-01. aliases: ec2_access_key, access_key | ||
aws_ca_bundle path | The location of a CA Bundle to use when validating SSL certificates. Only used for boto3 based modules. Note: The CA Bundle is read 'module' side and may need to be explicitly copied from the controller if not run locally. | ||
aws_config dictionary | A dictionary to modify the botocore configuration. Parameters can be found at https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Only the 'user_agent' key is used for boto modules. See http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto for more boto configuration. | ||
aws_secret_key string | AWS secret key. If not set then the value of the AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY, or EC2_SECRET_KEY environment variable is used. If profile is set this parameter is ignored. Passing the aws_secret_key and profile options at the same time has been deprecated and the options will be made mutually exclusive after 2022-06-01. aliases: ec2_secret_key, secret_key | ||
cluster string / required | The name of the cluster to run the task on. | ||
container_instances list / elements=string | The list of container instances on which to deploy the task. | ||
count integer | How many new instances to start. | ||
debug_botocore_endpoint_logs boolean |
| Use a botocore.endpoint logger to parse the unique (rather than total) "resource:action" API calls made during a task, outputing the set to the resource_actions key in the task results. Use the aws_resource_action callback to output to total list made during a playbook. The ANSIBLE_DEBUG_BOTOCORE_LOGS environment variable may also be used. | |
ec2_url string | Url to use to connect to EC2 or your Eucalyptus cloud (by default the module will use EC2 endpoints). Ignored for modules where region is required. Must be specified for all other modules if region is not used. If not set then the value of the EC2_URL environment variable, if any, is used. aliases: aws_endpoint_url, endpoint_url | ||
launch_type string |
| The launch type on which to run your service. | |
network_configuration dictionary | Network configuration of the service. Only applicable for task definitions created with network_mode=awsvpc.
assign_public_ip requires botocore >= 1.8.4 | ||
assign_public_ip boolean added in 1.5.0 of community.aws |
| Whether the task's elastic network interface receives a public IP address. | |
security_groups list / elements=string | A list of group names or group IDs for the task. | ||
subnets list / elements=string | A list of subnet IDs to which the task is attached. | ||
operation string / required |
| Which task operation to execute. When operation=run task_definition must be set. When operation=start both task_definition and container_instances must be set. When operation=stop both task_definition and task must be set. | |
overrides dictionary | A dictionary of values to pass to the new instances. | ||
profile string | Uses a boto profile. Only works with boto >= 2.24.0. Using profile will override aws_access_key, aws_secret_key and security_token and support for passing them at the same time as profile has been deprecated.
aws_access_key, aws_secret_key and security_token will be made mutually exclusive with profile after 2022-06-01. aliases: aws_profile | ||
region string | The AWS region to use. If not specified then the value of the AWS_REGION or EC2_REGION environment variable, if any, is used. See http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
aliases: aws_region, ec2_region | ||
security_token string | AWS STS security token. If not set then the value of the AWS_SECURITY_TOKEN or EC2_SECURITY_TOKEN environment variable is used. If profile is set this parameter is ignored. Passing the security_token and profile options at the same time has been deprecated and the options will be made mutually exclusive after 2022-06-01. aliases: aws_security_token, access_token | ||
started_by string | A value showing who or what started the task (for informational purposes). | ||
tags dictionary | Tags that will be added to ecs tasks on start and run | ||
task string | The ARN of the task to stop. | ||
task_definition string | The task definition to start, run or stop. | ||
validate_certs boolean |
| When set to "no", SSL certificates will not be validated for boto versions >= 2.6.0. |
Notes
Note
- If parameters are not set within the module, the following environment variables can be used in decreasing order of precedence
AWS_URL
orEC2_URL
,AWS_PROFILE
orAWS_DEFAULT_PROFILE
,AWS_ACCESS_KEY_ID
orAWS_ACCESS_KEY
orEC2_ACCESS_KEY
,AWS_SECRET_ACCESS_KEY
orAWS_SECRET_KEY
orEC2_SECRET_KEY
,AWS_SECURITY_TOKEN
orEC2_SECURITY_TOKEN
,AWS_REGION
orEC2_REGION
,AWS_CA_BUNDLE
- Ansible uses the boto configuration file (typically ~/.boto) if no credentials are provided. See https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGION
orEC2_REGION
can be typically be used to specify the AWS region, when required, but this can also be configured in the boto config file
Examples
# Simple example of run task - name: Run task community.aws.ecs_task: operation: run cluster: console-sample-app-static-cluster task_definition: console-sample-app-static-taskdef count: 1 started_by: ansible_user register: task_output # Simple example of start task - name: Start a task community.aws.ecs_task: operation: start cluster: console-sample-app-static-cluster task_definition: console-sample-app-static-taskdef task: "arn:aws:ecs:us-west-2:172139249013:task/3f8353d1-29a8-4689-bbf6-ad79937ffe8a" tags: resourceName: a_task_for_ansible_to_run type: long_running_task network: internal version: 1.4 container_instances: - arn:aws:ecs:us-west-2:172139249013:container-instance/79c23f22-876c-438a-bddf-55c98a3538a8 started_by: ansible_user network_configuration: subnets: - subnet-abcd1234 security_groups: - sg-aaaa1111 - my_security_group register: task_output - name: RUN a task on Fargate community.aws.ecs_task: operation: run cluster: console-sample-app-static-cluster task_definition: console-sample-app-static-taskdef task: "arn:aws:ecs:us-west-2:172139249013:task/3f8353d1-29a8-4689-bbf6-ad79937ffe8a" started_by: ansible_user launch_type: FARGATE network_configuration: subnets: - subnet-abcd1234 security_groups: - sg-aaaa1111 - my_security_group register: task_output - name: RUN a task on Fargate with public ip assigned community.aws.ecs_task: operation: run count: 2 cluster: console-sample-app-static-cluster task_definition: console-sample-app-static-taskdef task: "arn:aws:ecs:us-west-2:172139249013:task/3f8353d1-29a8-4689-bbf6-ad79937ffe8a" started_by: ansible_user launch_type: FARGATE network_configuration: assign_public_ip: yes subnets: - subnet-abcd1234 register: task_output - name: Stop a task community.aws.ecs_task: operation: stop cluster: console-sample-app-static-cluster task_definition: console-sample-app-static-taskdef task: "arn:aws:ecs:us-west-2:172139249013:task/3f8353d1-29a8-4689-bbf6-ad79937ffe8a"
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description | |
---|---|---|---|
task complex | success | details about the task that was started | |
clusterArn string | only when details is true | The Amazon Resource Name (ARN) of the of the cluster that hosts the task. | |
containerInstanceArn string | only when details is true | The Amazon Resource Name (ARN) of the container running the task. | |
containers list / elements=dictionary | only when details is true | The container details. | |
createdAt string | only when details is true | The timestamp of when the task was created. | |
desiredStatus string | only when details is true | The desired status of the task. | |
lastStatus string | only when details is true | The last recorded status of the task. | |
launchType string | always | The launch type on which to run your task. | |
overrides list / elements=dictionary | only when details is true | The container overrides set for this task. | |
startedAt string | only when details is true | The timestamp of when the task was started. | |
startedBy string | only when details is true | The used who started the task. | |
stoppedAt string | only when details is true | The timestamp of when the task was stopped. | |
stoppedReason string | only when details is true | The reason why the task was stopped. | |
taskArn string | always | The Amazon Resource Name (ARN) that identifies the task. | |
taskDefinitionArn string | only when details is true | The Amazon Resource Name (ARN) of the task definition. |
Authors
- Mark Chance (@Java1Guy)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/aws/ecs_task_module.html