ansible.builtin.ec2_lc (v2.9.17) — module

Create or delete AWS Autoscaling Launch Configurations

| "added in version" 1.6 of ansible.builtin"

Authors: Gareth Rushgrove (@garethr), Willem van Ketwich (@wilvk)

stableinterface | supported by community

Install Ansible via pip

Install with pip install ansible==2.9.17

Description

Can create or delete AWS Autoscaling Configurations

Works with the ec2_asg module to manage Autoscaling Groups


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.

# create a launch configuration using an AMI image and instance type as a basis

- name: note that encrypted volumes are only supported in >= Ansible 2.4
  ec2_lc:
    name: special
    image_id: ami-XXX
    key_name: default
    security_groups: ['group', 'group2' ]
    instance_type: t1.micro
    volumes:
    - device_name: /dev/sda1
      volume_size: 100
      volume_type: io1
      iops: 3000
      delete_on_termination: true
      encrypted: true
    - device_name: /dev/sdb
      ephemeral: ephemeral0
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# create a launch configuration using a running instance id as a basis

- ec2_lc:
    name: special
    instance_id: i-00a48b207ec59e948
    key_name: default
    security_groups: ['launch-wizard-2' ]
    volumes:
    - device_name: /dev/sda1
      volume_size: 120
      volume_type: io1
      iops: 3000
      delete_on_termination: true
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# create a launch configuration to omit the /dev/sdf EBS device that is included in the AMI image

- ec2_lc:
    name: special
    image_id: ami-XXX
    key_name: default
    security_groups: ['group', 'group2' ]
    instance_type: t1.micro
    volumes:
    - device_name: /dev/sdf
      no_device: true

Inputs

    
name:
    description:
    - Unique name for configuration
    required: true

state:
    choices:
    - present
    - absent
    default: present
    description:
    - Register or deregister the instance

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

vpc_id:
    description:
    - VPC ID, used when resolving security group names to IDs.
    version_added: '2.4'
    version_added_collection: ansible.builtin

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:
    - 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

volumes:
    description:
    - A list of volume dicts, each containing device name and optionally ephemeral id
      or snapshot id. Size and type (and number of iops for io device type) must be specified
      for a new volume or a root volume, and may be passed for a snapshot volume. For
      any volume, a volume size less than 1 will be interpreted as a request not to create
      the volume.

image_id:
    description:
    - The AMI unique identifier to be used for the group

key_name:
    description:
    - The SSH key name to be used for access to managed instances

kernel_id:
    description:
    - Kernel id for the EC2 instance

user_data:
    description:
    - Opaque blob of data which is made available to the ec2 instance. Mutually exclusive
      with I(user_data_path).

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

ramdisk_id:
    description:
    - A RAM disk id for the instances.
    version_added: '1.8'
    version_added_collection: ansible.builtin

spot_price:
    description:
    - The spot price you are bidding. Only applies for an autoscaling group with spot
      instances.

instance_id:
    description:
    - The Id of a running instance to use as a basis for a launch configuration. Can be
      used in place of image_id and instance_type.
    version_added: '2.4'
    version_added_collection: ansible.builtin

aws_ca_bundle:
    description:
    - The location of a CA Bundle to use when validating SSL certificates.
    - Not used by boto 2 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

ebs_optimized:
    default: false
    description:
    - Specifies whether the instance is optimized for EBS I/O (true) or not (false).
    version_added: '1.8'
    version_added_collection: ansible.builtin

instance_type:
    description:
    - Instance type to use for the instance
    required: true

aws_access_key:
    aliases:
    - ec2_access_key
    - access_key
    description:
    - C(AWS access key). If not set then the value of the C(AWS_ACCESS_KEY_ID), C(AWS_ACCESS_KEY)
      or C(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:
    - C(AWS secret key). If not set then the value of the C(AWS_SECRET_ACCESS_KEY), C(AWS_SECRET_KEY),
      or C(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:
    - C(AWS STS security token). If not set then the value of the C(AWS_SECURITY_TOKEN)
      or C(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

user_data_path:
    description:
    - Path to the file that contains userdata for the ec2 instances. Mutually exclusive
      with I(user_data).
    version_added: '2.3'
    version_added_collection: ansible.builtin

validate_certs:
    default: true
    description:
    - When set to "no", SSL certificates will not be validated for communication with
      the AWS APIs.
    type: bool

security_groups:
    description:
    - A list of security groups to apply to the instances. Since version 2.4 you can specify
      either security group names or IDs or a mix.  Previous to 2.4, for VPC instances,
      specify security group IDs and for EC2-Classic, specify either security group names
      or IDs.

assign_public_ip:
    description:
    - Used for Auto Scaling groups that launch instances into an Amazon Virtual Private
      Cloud. Specifies whether to assign a public IP address to each instance launched
      in a Amazon VPC.
    version_added: '1.8'
    version_added_collection: ansible.builtin

placement_tenancy:
    default: default
    description:
    - Determines whether the instance runs on single-tenant hardware or not.
    version_added: '2.4'
    version_added_collection: ansible.builtin

classic_link_vpc_id:
    description:
    - Id of ClassicLink enabled VPC
    version_added: '2.0'
    version_added_collection: ansible.builtin

instance_monitoring:
    default: 'no'
    description:
    - Specifies whether instances are launched with detailed monitoring.
    type: bool

instance_profile_name:
    description:
    - The name or the Amazon Resource Name (ARN) of the instance profile associated with
      the IAM role for the instances.
    version_added: '1.8'
    version_added_collection: ansible.builtin

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

classic_link_vpc_security_groups:
    description:
    - A list of security group IDs with which to associate the ClassicLink VPC instances.
    version_added: '2.0'
    version_added_collection: ansible.builtin

Outputs

arn:
  description: The Amazon Resource Name of the launch configuration.
  returned: when I(state=present)
  sample: arn:aws:autoscaling:us-east-1:148830907657:launchConfiguration:888d9b58-d93a-40c4-90cf-759197a2621a:launchConfigurationName/launch_config_name
  type: str
changed:
  description: Whether the state of the launch configuration has changed.
  returned: always
  sample: false
  type: bool
created_time:
  description: The creation date and time for the launch configuration.
  returned: when I(state=present)
  sample: '2017-11-03 23:46:44.841000'
  type: str
image_id:
  description: The ID of the Amazon Machine Image used by the launch configuration.
  returned: when I(state=present)
  sample: ami-9be6f38c
  type: str
instance_type:
  description: The instance type for the instances.
  returned: when I(state=present)
  sample: t1.micro
  type: str
name:
  description: The name of the launch configuration.
  returned: when I(state=present)
  sample: launch_config_name
  type: str
result:
  contains:
    PlacementTenancy:
      description: The tenancy of the instances, either default or dedicated.
      returned: when I(state=present)
      sample: default
      type: str
    associate_public_ip_address:
      description: (EC2-VPC) Indicates whether to assign a public IP address to each
        instance.
      returned: when I(state=present)
      sample: null
      type: NoneType
    block_device_mappings:
      contains:
        device_name:
          description: The device name exposed to the EC2 instance (for example, /dev/sdh
            or xvdh).
          returned: when I(state=present)
          sample: /dev/sda1
          type: str
        ebs:
          contains:
            snapshot_id:
              description: The ID of the snapshot.
              returned: when I(state=present)
              sample: null
              type: NoneType
            volume_size:
              description: The volume size, in GiB.
              returned: when I(state=present)
              sample: '100'
              type: str
          description: The information about the Amazon EBS volume.
          returned: when I(state=present)
          type: complex
        virtual_name:
          description: The name of the virtual device (for example, ephemeral0).
          returned: when I(state=present)
          sample: null
          type: NoneType
      description: A block device mapping, which specifies the block devices.
      returned: when I(state=present)
      type: complex
    classic_link_vpc_id:
      description: The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances
        to.
      returned: when I(state=present)
      sample: null
      type: NoneType
    classic_link_vpc_security_groups:
      description: The IDs of one or more security groups for the VPC specified in
        ClassicLinkVPCId.
      returned: when I(state=present)
      sample: []
      type: list
    created_time:
      description: The creation date and time for the launch configuration.
      returned: when I(state=present)
      sample: '2017-11-03 23:46:44.841000'
      type: str
    delete_on_termination:
      description: Indicates whether the volume is deleted on instance termination.
      returned: when I(state=present)
      sample: true
      type: bool
    ebs_optimized:
      description: Indicates whether the instance is optimized for EBS I/O (true)
        or not (false).
      returned: when I(state=present)
      sample: false
      type: bool
    image_id:
      description: The ID of the Amazon Machine Image used by the launch configuration.
      returned: when I(state=present)
      sample: ami-9be6f38c
      type: str
    instance_monitoring:
      description: Indicates whether instances in this group are launched with detailed
        (true) or basic (false) monitoring.
      returned: when I(state=present)
      sample: true
      type: bool
    instance_profile_name:
      description: The name or Amazon Resource Name (ARN) of the instance profile
        associated with the IAM role for the instance.
      returned: when I(state=present)
      sample: null
      type: str
    instance_type:
      description: The instance type for the instances.
      returned: when I(state=present)
      sample: t1.micro
      type: str
    iops:
      description: The number of I/O operations per second (IOPS) to provision for
        the volume.
      returned: when I(state=present)
      sample: null
      type: NoneType
    kernel_id:
      description: The ID of the kernel associated with the AMI.
      returned: when I(state=present)
      sample: ''
      type: str
    key_name:
      description: The name of the key pair.
      returned: when I(state=present)
      sample: testkey
      type: str
    launch_configuration_arn:
      description: The Amazon Resource Name (ARN) of the launch configuration.
      returned: when I(state=present)
      sample: arn:aws:autoscaling:us-east-1:148830907657:launchConfiguration:888d9b58-d93a-40c4-90cf-759197a2621a:launchConfigurationName/launch_config_name
      type: str
    member:
      description: ''
      returned: when I(state=present)
      sample: ' '
      type: str
    name:
      description: The name of the launch configuration.
      returned: when I(state=present)
      sample: launch_config_name
      type: str
    ramdisk_id:
      description: The ID of the RAM disk associated with the AMI.
      returned: when I(state=present)
      sample: ''
      type: str
    security_groups:
      description: The security groups to associate with the instances.
      returned: when I(state=present)
      sample:
      - sg-5e27db2f
      type: list
    spot_price:
      description: The price to bid when launching Spot Instances.
      returned: when I(state=present)
      sample: null
      type: NoneType
    use_block_device_types:
      description: Indicates whether to suppress a device mapping.
      returned: when I(state=present)
      sample: false
      type: bool
    user_data:
      description: The user data available to the instances.
      returned: when I(state=present)
      sample: ''
      type: str
    volume_type:
      description: The volume type (one of standard, io1, gp2).
      returned: when I(state=present)
      sample: null
      type: NoneType
  description: The specification details for the launch configuration.
  returned: when I(state=present)
  type: complex
security_groups:
  description: The security groups to associate with the instances.
  returned: when I(state=present)
  sample:
  - sg-5e27db2f
  type: list