community.aws.batch_compute_environment (5.1.0) — module

Manage AWS Batch Compute Environments

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

Authors: Jon Meran (@jonmer85)

Install collection

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


Add to requirements.yml

  collections:
    - name: community.aws
      version: 5.1.0

Description

This module allows the management of AWS Batch Compute Environments.

It is idempotent and supports "Check" mode.

Use module M(community.aws.batch_compute_environment) to manage the compute environment, M(community.aws.batch_job_queue) to manage job queues, M(community.aws.batch_job_definition) to manage job definitions.

Prior to release 5.0.0 this module was called C(community.aws.aws_batch_compute_environment). The usage did not change.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: My Batch Compute Environment
  community.aws.batch_compute_environment:
    compute_environment_name: computeEnvironmentName
    state: present
    region: us-east-1
    compute_environment_state: ENABLED
    type: MANAGED
    compute_resource_type: EC2
    minv_cpus: 0
    maxv_cpus: 2
    desiredv_cpus: 1
    instance_types:
      - optimal
    subnets:
      - my-subnet1
      - my-subnet2
    security_group_ids:
      - my-sg1
      - my-sg2
    instance_role: arn:aws:iam::<account>:instance-profile/<role>
    tags:
      tag1: value1
      tag2: value2
    service_role: arn:aws:iam::<account>:role/service-role/<role>
  register: aws_batch_compute_environment_action
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: show results
  ansible.builtin.debug:
    var: aws_batch_compute_environment_action

Inputs

    
tags:
    description:
    - Key-value pair tags to be applied to resources that are launched in the compute
      environment.
    type: dict

type:
    choices:
    - MANAGED
    - UNMANAGED
    description:
    - The type of the compute environment.
    required: true
    type: str

state:
    choices:
    - present
    - absent
    default: present
    description:
    - Describes the desired state.
    type: str

region:
    aliases:
    - aws_region
    - ec2_region
    description:
    - The AWS region to use.
    - For global services such as IAM, Route53 and CloudFront, I(region) is ignored.
    - The C(AWS_REGION) or C(EC2_REGION) environment variables may also be used.
    - See the Amazon AWS documentation for more information U(http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region).
    - The C(ec2_region) alias has been deprecated and will be removed in a release after
      2024-12-01
    - Support for the C(EC2_REGION) environment variable has been deprecated and will
      be removed in a release after 2024-12-01.
    type: str

profile:
    aliases:
    - aws_profile
    description:
    - A named AWS profile to use for authentication.
    - See the AWS documentation for more information about named profiles U(https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).
    - The C(AWS_PROFILE) environment variable may also be used.
    - The I(profile) option is mutually exclusive with the I(aws_access_key), I(aws_secret_key)
      and I(security_token) options.
    type: str

subnets:
    description:
    - The VPC subnets into which the compute resources are launched.
    elements: str
    required: true
    type: list

image_id:
    description:
    - The Amazon Machine Image (AMI) ID used for instances launched in the compute environment.
    type: str

maxv_cpus:
    description:
    - The maximum number of EC2 vCPUs that an environment can reach.
    required: true
    type: int

minv_cpus:
    description:
    - The minimum number of EC2 vCPUs that an environment should maintain.
    required: true
    type: int

access_key:
    aliases:
    - aws_access_key_id
    - aws_access_key
    - ec2_access_key
    description:
    - AWS access key ID.
    - See the AWS documentation for more information about access tokens U(https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).
    - The C(AWS_ACCESS_KEY_ID), C(AWS_ACCESS_KEY) or C(EC2_ACCESS_KEY) environment variables
      may also be used in decreasing order of preference.
    - The I(aws_access_key) and I(profile) options are mutually exclusive.
    - The I(aws_access_key_id) alias was added in release 5.1.0 for consistency with the
      AWS botocore SDK.
    - The I(ec2_access_key) alias has been deprecated and will be removed in a release
      after 2024-12-01.
    - Support for the C(EC2_ACCESS_KEY) environment variable has been deprecated and will
      be removed in a release after 2024-12-01.
    type: str

aws_config:
    description:
    - A dictionary to modify the botocore configuration.
    - Parameters can be found in the AWS documentation U(https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config).
    type: dict

secret_key:
    aliases:
    - aws_secret_access_key
    - aws_secret_key
    - ec2_secret_key
    description:
    - AWS secret access key.
    - See the AWS documentation for more information about access tokens U(https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).
    - The C(AWS_SECRET_ACCESS_KEY), C(AWS_SECRET_KEY), or C(EC2_SECRET_KEY) environment
      variables may also be used in decreasing order of preference.
    - The I(secret_key) and I(profile) options are mutually exclusive.
    - The I(aws_secret_access_key) alias was added in release 5.1.0 for consistency with
      the AWS botocore SDK.
    - The I(ec2_secret_key) alias has been deprecated and will be removed in a release
      after 2024-12-01.
    - Support for the C(EC2_SECRET_KEY) environment variable has been deprecated and will
      be removed in a release after 2024-12-01.
    type: str

ec2_key_pair:
    description:
    - The EC2 key pair that is used for instances launched in the compute environment.
    type: str

endpoint_url:
    aliases:
    - ec2_url
    - aws_endpoint_url
    - s3_url
    description:
    - URL to connect to instead of the default AWS endpoints.  While this can be used
      to connection to other AWS-compatible services the amazon.aws and community.aws
      collections are only tested against AWS.
    - The  C(AWS_URL) or C(EC2_URL) environment variables may also be used, in decreasing
      order of preference.
    - The I(ec2_url) and I(s3_url) aliases have been deprecated and will be removed in
      a release after 2024-12-01.
    - Support for the C(EC2_URL) environment variable has been deprecated and will be
      removed in a release after 2024-12-01.
    type: str

service_role:
    description:
    - The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make
      calls to other AWS services on your behalf.
    required: true
    type: str

aws_ca_bundle:
    description:
    - The location of a CA Bundle to use when validating SSL certificates.
    - The C(AWS_CA_BUNDLE) environment variable may also be used.
    type: path

desiredv_cpus:
    description:
    - The desired number of EC2 vCPUS in the compute environment.
    type: int

instance_role:
    description:
    - The Amazon ECS instance role applied to Amazon EC2 instances in a compute environment.
    required: true
    type: str

session_token:
    aliases:
    - aws_session_token
    - security_token
    - aws_security_token
    - access_token
    description:
    - AWS STS session token for use with temporary credentials.
    - See the AWS documentation for more information about access tokens U(https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).
    - The C(AWS_SESSION_TOKEN), C(AWS_SECURITY_TOKEN) or C(EC2_SECURITY_TOKEN) environment
      variables may also be used in decreasing order of preference.
    - The I(security_token) and I(profile) options are mutually exclusive.
    - Aliases I(aws_session_token) and I(session_token) were added in release 3.2.0, with
      the parameter being renamed from I(security_token) to I(session_token) in release
      6.0.0.
    - The I(security_token), I(aws_security_token), and I(access_token) aliases have been
      deprecated and will be removed in a release after 2024-12-01.
    - Support for the C(EC2_SECRET_KEY) and C(AWS_SECURITY_TOKEN) environment variables
      has been deprecated and will be removed in a release after 2024-12-01.
    type: str

bid_percentage:
    description:
    - The minimum percentage that a Spot Instance price must be when compared with the
      On-Demand price for that instance type before instances are launched.
    - For example, if your bid percentage is 20%, then the Spot price must be below 20%
      of the current On-Demand price for that EC2 instance.
    type: int

instance_types:
    description:
    - The instance types that may be launched.
    elements: str
    required: true
    type: list

validate_certs:
    default: true
    description:
    - When set to C(false), SSL certificates will not be validated for communication with
      the AWS APIs.
    - Setting I(validate_certs=false) is strongly discouraged, as an alternative, consider
      setting I(aws_ca_bundle) instead.
    type: bool

security_group_ids:
    description:
    - The EC2 security groups that are associated with instances launched in the compute
      environment.
    elements: str
    required: true
    type: list

spot_iam_fleet_role:
    description:
    - The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to
      a SPOT compute environment.
    type: str

compute_resource_type:
    choices:
    - EC2
    - SPOT
    description:
    - The type of compute resource.
    required: true
    type: str

compute_environment_name:
    description:
    - The name for your compute environment.
    - Up to 128 letters (uppercase and lowercase), numbers, and underscores are allowed.
    required: true
    type: str

compute_environment_state:
    choices:
    - ENABLED
    - DISABLED
    default: ENABLED
    description:
    - The state of the compute environment.
    - If the state is C(ENABLED), then the compute environment accepts jobs from a queue
      and can scale out automatically based on queues.
    type: str

debug_botocore_endpoint_logs:
    default: false
    description:
    - Use a C(botocore.endpoint) logger to parse the unique (rather than total) C("resource:action")
      API calls made during a task, outputing the set to the resource_actions key in the
      task results. Use the C(aws_resource_action) callback to output to total list made
      during a playbook.
    - The C(ANSIBLE_DEBUG_BOTOCORE_LOGS) environment variable may also be used.
    type: bool

Outputs

output:
  description: returns what action was taken, whether something was changed, invocation
    and response
  returned: always
  sample:
    batch_compute_environment_action: none
    changed: false
    invocation:
      module_args:
        aws_access_key: null
        aws_secret_key: null
        bid_percentage: null
        compute_environment_name: <name>
        compute_environment_state: ENABLED
        compute_resource_type: EC2
        desiredv_cpus: 0
        ec2_key_pair: null
        ec2_url: null
        image_id: null
        instance_role: arn:aws:iam::...
        instance_types:
        - optimal
        maxv_cpus: 8
        minv_cpus: 0
        profile: null
        region: us-east-1
        security_group_ids:
        - '*******'
        security_token: null
        service_role: arn:aws:iam::....
        spot_iam_fleet_role: null
        state: present
        subnets:
        - '******'
        tags:
          Environment: <name>
          Name: <name>
        type: MANAGED
        validate_certs: true
    response:
      computeEnvironmentArn: arn:aws:batch:....
      computeEnvironmentName: <name>
      computeResources:
        desiredvCpus: 0
        instanceRole: arn:aws:iam::...
        instanceTypes:
        - optimal
        maxvCpus: 8
        minvCpus: 0
        securityGroupIds:
        - '******'
        subnets:
        - '*******'
        tags:
          Environment: <name>
          Name: <name>
        type: EC2
      ecsClusterArn: arn:aws:ecs:.....
      serviceRole: arn:aws:iam::...
      state: ENABLED
      status: VALID
      statusReason: ComputeEnvironment Healthy
      type: MANAGED
  type: dict