community.aws.ecs_task (4.3.0) — module

Run, start or stop a task in ECS

| "added in version" 1.0.0 of community.aws"

Authors: Mark Chance (@Java1Guy)

Install collection

Install with ansible-galaxy collection install community.aws:==4.3.0


Add to requirements.yml

  collections:
    - name: community.aws
      version: 4.3.0

Description

Creates or deletes instances of task definitions.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# 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
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# 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
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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"

Inputs

    
tags:
    aliases:
    - resource_tags
    description:
    - Tags that will be added to ecs tasks on start and run
    required: false
    type: dict

task:
    description:
    - The ARN of the task to stop.
    required: false
    type: str

wait:
    default: false
    description:
    - Whether or not to wait for the desired state.
    type: bool
    version_added: 4.1.0
    version_added_collection: community.aws

count:
    description:
    - How many new instances to start.
    required: false
    type: int

region:
    aliases:
    - aws_region
    - ec2_region
    description:
    - 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 U(http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region)
    type: str

cluster:
    default: default
    description:
    - The name of the cluster to run the task on.
    - If not specified, the cluster name will be C(default).
    required: false
    type: str

ec2_url:
    aliases:
    - aws_endpoint_url
    - endpoint_url
    description:
    - 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.
    type: str

profile:
    aliases:
    - aws_profile
    description:
    - Uses a boto profile. Only works with boto >= 2.24.0.
    - Using I(profile) will override I(aws_access_key), I(aws_secret_key) and I(security_token)
      and support for passing them at the same time as I(profile) has been deprecated.
    - I(aws_access_key), I(aws_secret_key) and I(security_token) will be made mutually
      exclusive with I(profile) after 2022-06-01.
    type: str

operation:
    choices:
    - run
    - start
    - stop
    description:
    - Which task operation to execute.
    - When I(operation=run) I(task_definition) must be set.
    - When I(operation=start) both I(task_definition) and I(container_instances) must
      be set.
    - When I(operation=stop) both I(task_definition) and I(task) must be set.
    required: true
    type: str

overrides:
    description:
    - A dictionary of values to pass to the new instances.
    required: false
    type: dict

aws_config:
    description:
    - A dictionary to modify the botocore configuration.
    - Parameters can be found at U(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 U(http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto)
      for more boto configuration.
    type: dict

started_by:
    description:
    - A value showing who or what started the task (for informational purposes).
    required: false
    type: str

launch_type:
    choices:
    - EC2
    - FARGATE
    description:
    - The launch type on which to run your service.
    required: false
    type: str

aws_ca_bundle:
    description:
    - 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.'
    type: path

aws_access_key:
    aliases:
    - ec2_access_key
    - access_key
    description:
    - 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 I(profile) is set this parameter is ignored.
    - Passing the I(aws_access_key) and I(profile) options at the same time has been deprecated
      and the options will be made mutually exclusive after 2022-06-01.
    type: str

aws_secret_key:
    aliases:
    - ec2_secret_key
    - secret_key
    description:
    - 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 I(profile) is set this parameter is ignored.
    - Passing the I(aws_secret_key) and I(profile) options at the same time has been deprecated
      and the options will be made mutually exclusive after 2022-06-01.
    type: str

security_token:
    aliases:
    - aws_security_token
    - access_token
    description:
    - AWS STS security token. If not set then the value of the AWS_SECURITY_TOKEN or EC2_SECURITY_TOKEN
      environment variable is used.
    - If I(profile) is set this parameter is ignored.
    - Passing the I(security_token) and I(profile) options at the same time has been deprecated
      and the options will be made mutually exclusive after 2022-06-01.
    type: str

validate_certs:
    default: true
    description:
    - When set to "no", SSL certificates will not be validated for boto versions >= 2.6.0.
    type: bool

task_definition:
    description:
    - The task definition to start, run or stop.
    required: false
    type: str

container_instances:
    description:
    - The list of container instances on which to deploy the task.
    elements: str
    required: false
    type: list

network_configuration:
    description:
    - Network configuration of the service. Only applicable for task definitions created
      with I(network_mode=awsvpc).
    suboptions:
      assign_public_ip:
        description: Whether the task's elastic network interface receives a public IP
          address.
        type: bool
        version_added: 1.5.0
        version_added_collection: community.aws
      security_groups:
        description: A list of group names or group IDs for the task.
        elements: str
        type: list
      subnets:
        description: A list of subnet IDs to which the task is attached.
        elements: str
        type: list
    type: dict

debug_botocore_endpoint_logs:
    default: 'no'
    description:
    - 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.
    type: bool

Outputs

task:
  contains:
    clusterArn:
      description: The Amazon Resource Name (ARN) of the of the cluster that hosts
        the task.
      returned: only when details is true
      type: str
    containerInstanceArn:
      description: The Amazon Resource Name (ARN) of the container running the task.
      returned: only when details is true
      type: str
    containers:
      description: The container details.
      elements: dict
      returned: only when details is true
      type: list
    createdAt:
      description: The timestamp of when the task was created.
      returned: only when details is true
      type: str
    desiredStatus:
      description: The desired status of the task.
      returned: only when details is true
      type: str
    lastStatus:
      description: The last recorded status of the task.
      returned: only when details is true
      type: str
    launchType:
      description: The launch type on which to run your task.
      returned: always
      type: str
    overrides:
      description: The container overrides set for this task.
      elements: dict
      returned: only when details is true
      type: list
    startedAt:
      description: The timestamp of when the task was started.
      returned: only when details is true
      type: str
    startedBy:
      description: The used who started the task.
      returned: only when details is true
      type: str
    stoppedAt:
      description: The timestamp of when the task was stopped.
      returned: only when details is true
      type: str
    stoppedReason:
      description: The reason why the task was stopped.
      returned: only when details is true
      type: str
    taskArn:
      description: The Amazon Resource Name (ARN) that identifies the task.
      returned: always
      type: str
    taskDefinitionArn:
      description: The Amazon Resource Name (ARN) of the task definition.
      returned: only when details is true
      type: str
  description: details about the task that was started
  returned: success
  type: complex