Sanity test fixups for AWS ec2 modules (#64230)

* ec2_ boilerplate

* Deprecate unused options.

* ec2_vol: Perform explicit type checking on volume_size and iops when parsing the args

Boto would through a type exception if the string couldn't be converted to an int.

* ec2_lc_find: remove duplicate definition of region

It's defined in ec2_argument_spec and ec2 doc fragment

* ec2_lc_info: Move responsibility for type checking/conversion of sort_start and sort_end into arg parser

* General sanity test related doc fixups

* Remove EC2 related sanity/ignore.txt entries

* Add changelog fragment
pull/64083/head
Mark Chappell 5 years ago committed by John R Barker
parent 8528fbc790
commit 819ba2259d

@ -0,0 +1,5 @@
deprecated_features:
- "ec2_eip - The ``wait_timeout`` option had no effect and will be removed in Ansible 2.14"
- "ec2_key - The ``wait`` option had no effect and will be removed in Ansible 2.14"
- "ec2_key - The ``wait_timeout`` option had no effect and will be removed in Ansible 2.14"
- "ec2_lc - The ``associate_public_ip_address`` option had no effect and will be removed in Ansible 2.14"

@ -59,7 +59,10 @@ The following functionality will be removed in Ansible 2.14. Please update updat
* The return values ``err`` and ``out`` of :ref:`docker_stack <docker_stack_module>` have been deprecated. Use ``stdout`` and ``stderr`` from now on instead.
* :ref:`cloudformation <cloudformation_module>`: the ``template_format`` option will be removed. It has been ignored by the module since Ansible 2.3.
* :ref:`data_pipeline <data_pipeline_module>`: the ``version`` option will be removed. It has always been ignored by the module.
* :ref:`ec2_eip <ec2_eip_module>`: the ``wait_timeout`` option will be removed. It has had no effect since Ansible 2.3.
* :ref:`ec2_key <ec2_key_module>`: the ``wait`` option will be removed. It has had no effect since Ansible 2.5.
* :ref:`ec2_key <ec2_key_module>`: the ``wait_timeout`` option will be removed. It has had no effect since Ansible 2.5.
* :ref:`ec2_lc <ec2_lc_module>`: the ``associate_public_ip_address`` option will be removed. It has always been ignored by the module.
The following functionality will change in Ansible 2.14. Please update update your playbooks accordingly.

@ -1,18 +1,9 @@
#!/usr/bin/python
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['stableinterface'],
@ -69,6 +60,7 @@ options:
- Instance type to use for the instance, see U(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html).
required: true
type: str
aliases: ['type']
tenancy:
version_added: "1.9"
description:
@ -228,6 +220,7 @@ options:
- Used with 'exact_count' to determine how many nodes based on a specific tag criteria should be running.
This can be expressed in multiple ways and is shown in the EXAMPLES section. For instance, one can request 25 servers
that are tagged with "class=webserver". The specified tag must already exist or be passed in as the 'instance_tags' option.
type: raw
network_interfaces:
version_added: "2.0"
description:

@ -21,25 +21,33 @@ options:
instance_id:
description:
- Instance ID to create the AMI from.
type: str
name:
description:
- The name of the new AMI.
type: str
architecture:
version_added: "2.3"
description:
- The target architecture of the image to register
default: "x86_64"
type: str
kernel_id:
version_added: "2.3"
description:
- The target kernel id of the image to register.
type: str
virtualization_type:
version_added: "2.3"
description:
- The virtualization type of the image to register.
default: "hvm"
type: str
root_device_name:
version_added: "2.3"
description:
- The root device name of the image to register.
type: str
wait:
description:
- Wait for the AMI to be in state 'available' before returning.
@ -49,14 +57,17 @@ options:
description:
- How long before wait gives up, in seconds.
default: 900
type: int
state:
description:
- Register or deregister an AMI.
default: 'present'
choices: [ "absent", "present" ]
type: str
description:
description:
- Human-readable string describing the contents and purpose of the AMI.
type: str
no_reboot:
description:
- Flag indicating that the bundling process should not attempt to shutdown the instance before bundling. If this flag is True, the
@ -66,13 +77,39 @@ options:
image_id:
description:
- Image ID to be deregistered.
type: str
device_mapping:
version_added: "2.0"
description:
- List of device hashes/dictionaries with custom configurations (same block-device-mapping parameters).
- >
Valid properties include: device_name, volume_type, size/volume_size (in GiB), delete_on_termination (boolean), no_device (boolean),
snapshot_id, iops (for io1 volume_type), encrypted
type: list
elements: dict
suboptions:
device_name:
type: str
description: The device name. For example C(/dev/sda).
volume_type:
type: str
description: The volume type. Defaults to C(gp2) when not set.
delete_on_termination:
type: bool
description: Whether the device should be automatically deleted when the Instance is terminated.
no_device:
type: bool
description: Suppresses the specified device included in the block device mapping of the AMI.
snapshot_id:
type: str
description: The ID of the Snapshot.
iops:
type: int
description: When using an C(io1) I(volume_type) this sets the number of IOPS provisioned for the volume
encrypted:
type: bool
description: Whether the volume should be encrypted.
volume_size:
aliases: ['size']
type: int
description: The size of the volume (in GiB)
delete_snapshot:
description:
- Delete snapshots when deregistering the AMI.
@ -82,6 +119,7 @@ options:
description:
- A dictionary of tags to add to the new image; '{"key":"value"}' and '{"key":"value","key":"value"}'
version_added: "2.0"
type: dict
purge_tags:
description: Whether to remove existing tags that aren't passed in the C(tags) parameter
version_added: "2.5"
@ -93,10 +131,12 @@ options:
be a list of account ids. group_name should be a list of groups, "all" is the only acceptable value currently.
- You must pass all desired launch permissions if you wish to modify existing launch permissions (passing just groups will remove all users)
version_added: "2.0"
type: dict
image_location:
description:
- The s3 location of an image to use for the AMI.
version_added: "2.5"
type: str
enhanced_networking:
description:
- A boolean representing whether enhanced networking with ENA is enabled or not.
@ -106,14 +146,18 @@ options:
description:
- A list of valid billing codes. To be used with valid accounts by aws marketplace vendors.
version_added: "2.5"
type: list
elements: str
ramdisk_id:
description:
- The ID of the RAM disk.
version_added: "2.5"
type: str
sriov_net_support:
description:
- Set to simple to enable enhanced networking with the Intel 82599 Virtual Function interface for the AMI and any instances that you launch from the AMI.
version_added: "2.5"
type: str
author:
- "Evan Duffield (@scicoin-project) <eduffield@iacquire.com>"
- "Constantin Bugneac (@Constantin07) <constantin.bugneac@endava.com>"

@ -1,19 +1,10 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
@ -32,17 +23,21 @@ options:
description:
- The source region the AMI should be copied from.
required: true
type: str
source_image_id:
description:
- The ID of the AMI in source region that should be copied.
required: true
type: str
name:
description:
- The name of the new AMI to copy. (As of 2.3 the default is 'default', in prior versions it was 'null'.)
default: "default"
type: str
description:
description:
- An optional human-readable string describing the contents and purpose of the new AMI.
type: str
encrypted:
description:
- Whether or not the destination snapshots of the copied AMI should be encrypted.
@ -50,8 +45,9 @@ options:
type: bool
kms_key_id:
description:
- KMS key id used to encrypt image. If not specified, uses default EBS Customer Master Key (CMK) for your account.
- KMS key id used to encrypt the image. If not specified, uses default EBS Customer Master Key (CMK) for your account.
version_added: "2.2"
type: str
wait:
description:
- Wait for the copied AMI to be in state 'available' before returning.
@ -63,9 +59,11 @@ options:
- From 2.3-2.5 this option was deprecated in favor of boto3 waiter defaults.
This was reenabled in 2.6 to allow timeouts greater than 10 minutes.
default: 600
type: int
tags:
description:
- A hash/dictionary of tags to add to the new copied AMI; '{"key":"value"}' and '{"key":"value","key":"value"}'
type: dict
tag_equality:
description:
- Whether to use tags if the source AMI already exists in the target region. If this is set, and all tags match

@ -2,6 +2,8 @@
# Copyright: Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
@ -23,20 +25,27 @@ options:
image_ids:
description: One or more image IDs.
aliases: [image_id]
type: list
elements: str
filters:
description:
- A dict of filters to apply. Each dict item consists of a filter key and a filter value.
- See U(https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html) for possible filters.
- Filter names and values are case sensitive.
type: dict
owners:
description:
- Filter the images by the owner. Valid options are an AWS account ID, self,
- or an AWS owner alias ( amazon | aws-marketplace | microsoft ).
aliases: [owner]
type: list
elements: str
executable_users:
description:
- Filter images by users with explicit launch permissions. Valid options are an AWS account ID, self, or all (public AMIs).
aliases: [executable_user]
type: list
elements: str
describe_image_attributes:
description:
- Describe attributes (like launchPermission) of the images found.
@ -79,17 +88,17 @@ images:
type: complex
contains:
architecture:
description: The architecture of the image
description: The architecture of the image.
returned: always
type: str
sample: x86_64
block_device_mappings:
description: Any block device mapping entries
description: Any block device mapping entries.
returned: always
type: complex
contains:
device_name:
description: The device name exposed to the instance
description: The device name exposed to the instance.
returned: always
type: str
sample: /dev/sda1
@ -98,86 +107,94 @@ images:
returned: always
type: complex
creation_date:
description: The date and time the image was created
description: The date and time the image was created.
returned: always
type: str
sample: '2017-10-16T19:22:13.000Z'
description:
description: The description of the AMI
description: The description of the AMI.
returned: always
type: str
sample: ''
ena_support:
description: whether enhanced networking with ENA is enabled
description: Whether enhanced networking with ENA is enabled.
returned: always
type: bool
sample: true
hypervisor:
description: The hypervisor type of the image
description: The hypervisor type of the image.
returned: always
type: str
sample: xen
image_id:
description: The ID of the AMI
description: The ID of the AMI.
returned: always
type: str
sample: ami-5b466623
image_location:
description: The location of the AMI
description: The location of the AMI.
returned: always
type: str
sample: 408466080000/Webapp
image_type:
description: The type of image
description: The type of image.
returned: always
type: str
sample: machine
launch_permissions:
description: launch permissions of the ami
returned: when image is owned by calling account and describe_image_attributes is yes
type: complex
description: A List of AWS accounts may launch the AMI.
returned: When image is owned by calling account and I(describe_image_attributes) is yes.
type: list
elements: dict
contains:
group:
description: A value of 'all' means the AMI is public.
type: str
user_id:
description: An AWS account ID with permissions to launch the AMI.
type: str
sample: [{"group": "all"}, {"user_id": "408466080000"}]
name:
description: The name of the AMI that was provided during image creation
description: The name of the AMI that was provided during image creation.
returned: always
type: str
sample: Webapp
owner_id:
description: The AWS account ID of the image owner
description: The AWS account ID of the image owner.
returned: always
type: str
sample: '408466080000'
public:
description: whether the image has public launch permissions
description: Whether the image has public launch permissions.
returned: always
type: bool
sample: true
root_device_name:
description: The device name of the root device
description: The device name of the root device.
returned: always
type: str
sample: /dev/sda1
root_device_type:
description: The type of root device used by the AMI
description: The type of root device used by the AMI.
returned: always
type: str
sample: ebs
sriov_net_support:
description: whether enhanced networking is enabled
description: Whether enhanced networking is enabled.
returned: always
type: str
sample: simple
state:
description: The current state of the AMI
description: The current state of the AMI.
returned: always
type: str
sample: available
tags:
description: Any tags assigned to the image
description: Any tags assigned to the image.
returned: always
type: complex
type: dict
virtualization_type:
description: The type of virtualization of the AMI
description: The type of virtualization of the AMI.
returned: always
type: str
sample: hvm

@ -1,18 +1,10 @@
#!/usr/bin/python
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['stableinterface'],
'supported_by': 'community'}
@ -21,110 +13,139 @@ ANSIBLE_METADATA = {'metadata_version': '1.1',
DOCUMENTATION = """
---
module: ec2_asg
short_description: Create or delete AWS Autoscaling Groups
short_description: Create or delete AWS AutoScaling Groups (ASGs)
description:
- Can create or delete AWS Autoscaling Groups
- Can be used with the ec2_lc module to manage Launch Configurations
- Can create or delete AWS AutoScaling Groups.
- Can be used with the M(ec2_lc) module to manage Launch Configurations.
version_added: "1.6"
author: "Gareth Rushgrove (@garethr)"
requirements: [ "boto3", "botocore" ]
options:
state:
description:
- register or deregister the instance
- Register or deregister the instance.
choices: ['present', 'absent']
default: present
type: str
name:
description:
- Unique name for group to be created or deleted
- Unique name for group to be created or deleted.
required: true
type: str
load_balancers:
description:
- List of ELB names to use for the group. Use for classic load balancers.
type: list
elements: str
target_group_arns:
description:
- List of target group ARNs to use for the group. Use for application load balancers.
version_added: "2.4"
type: list
elements: str
availability_zones:
description:
- List of availability zone names in which to create the group. Defaults to all the availability zones in the region if vpc_zone_identifier is not set.
- List of availability zone names in which to create the group.
- Defaults to all the availability zones in the region if I(vpc_zone_identifier) is not set.
type: list
elements: str
launch_config_name:
description:
- Name of the Launch configuration to use for the group. See the ec2_lc module for managing these.
If unspecified then the current group value will be used. One of launch_config_name or launch_template must be provided.
- Name of the Launch configuration to use for the group. See the M(ec2_lc) module for managing these.
- If unspecified then the current group value will be used. One of I(launch_config_name) or I(launch_template) must be provided.
type: str
launch_template:
description:
- Dictionary describing the Launch Template to use
suboptions:
version:
description:
- The version number of the launch template to use. Defaults to latest version if not provided.
default: "latest"
- The version number of the launch template to use.
- Defaults to latest version if not provided.
type: str
launch_template_name:
description:
- The name of the launch template. Only one of launch_template_name or launch_template_id is required.
- The name of the launch template. Only one of I(launch_template_name) or I(launch_template_id) is required.
type: str
launch_template_id:
description:
- The id of the launch template. Only one of launch_template_name or launch_template_id is required.
- The id of the launch template. Only one of I(launch_template_name) or I(launch_template_id) is required.
type: str
type: dict
version_added: "2.8"
min_size:
description:
- Minimum number of instances in group, if unspecified then the current group value will be used.
type: int
max_size:
description:
- Maximum number of instances in group, if unspecified then the current group value will be used.
type: int
placement_group:
description:
- Physical location of your cluster placement group created in Amazon EC2.
version_added: "2.3"
type: str
desired_capacity:
description:
- Desired number of instances in group, if unspecified then the current group value will be used.
type: int
replace_all_instances:
description:
- In a rolling fashion, replace all instances that used the old launch configuration with one from the new launch configuration.
It increases the ASG size by C(replace_batch_size), waits for the new instances to be up and running.
It increases the ASG size by I(replace_batch_size), waits for the new instances to be up and running.
After that, it terminates a batch of old instances, waits for the replacements, and repeats, until all old instances are replaced.
Once that's done the ASG size is reduced back to the expected size.
version_added: "1.8"
default: 'no'
default: false
type: bool
replace_batch_size:
description:
- Number of instances you'd like to replace at a time. Used with replace_all_instances.
- Number of instances you'd like to replace at a time. Used with I(replace_all_instances).
required: false
version_added: "1.8"
default: 1
type: int
replace_instances:
description:
- List of instance_ids belonging to the named ASG that you would like to terminate and be replaced with instances matching the current launch
configuration.
- List of I(instance_ids) belonging to the named AutoScalingGroup that you would like to terminate and be replaced with instances
matching the current launch configuration.
version_added: "1.8"
type: list
elements: str
lc_check:
description:
- Check to make sure instances that are being replaced with replace_instances do not already have the current launch_config.
- Check to make sure instances that are being replaced with I(replace_instances) do not already have the current I(launch_config).
version_added: "1.8"
default: 'yes'
default: true
type: bool
lt_check:
description:
- Check to make sure instances that are being replaced with replace_instances do not already have the current launch_template or launch_template version.
- Check to make sure instances that are being replaced with I(replace_instances) do not already have the current
I(launch_template or I(launch_template) I(version).
version_added: "2.8"
default: 'yes'
default: true
type: bool
vpc_zone_identifier:
description:
- List of VPC subnets to use
type: list
elements: str
tags:
description:
- A list of tags to add to the Auto Scale Group. Optional key is 'propagate_at_launch', which defaults to true.
- A list of tags to add to the Auto Scale Group.
- Optional key is I(propagate_at_launch), which defaults to true.
- When I(propagate_at_launch) is true the tags will be propagated to the Instances created.
version_added: "1.7"
type: list
elements: dict
health_check_period:
description:
- Length of time in seconds after a new EC2 instance comes into service that Auto Scaling starts checking its health.
required: false
default: 300 seconds
default: 300
version_added: "1.7"
type: int
health_check_type:
description:
- The service you want the health status from, Amazon EC2 or Elastic Load Balancer.
@ -132,76 +153,94 @@ options:
default: EC2
version_added: "1.7"
choices: ['EC2', 'ELB']
type: str
default_cooldown:
description:
- The number of seconds after a scaling activity completes before another can begin.
default: 300 seconds
default: 300
version_added: "2.0"
type: int
wait_timeout:
description:
- How long to wait for instances to become viable when replaced. If you experience the error "Waited too long for ELB instances to be healthy",
try increasing this value.
default: 300
type: int
version_added: "1.8"
wait_for_instances:
description:
- Wait for the ASG instances to be in a ready state before exiting. If instances are behind an ELB, it will wait until the ELB determines all
instances have a lifecycle_state of "InService" and a health_status of "Healthy".
version_added: "1.9"
default: 'yes'
default: true
type: bool
termination_policies:
description:
- An ordered list of criteria used for selecting instances to be removed from the Auto Scaling group when reducing capacity.
- For 'Default', when used to create a new autoscaling group, the "Default"i value is used. When used to change an existent autoscaling group, the
current termination policies are maintained.
- Using I(termination_policies=Default) when modifying an existing AutoScalingGroup will result in the existing policy being retained
instead of changed to C(Default).
- 'Valid values include: C(Default), C(OldestInstance), C(NewestInstance), C(OldestLaunchConfiguration), C(ClosestToNextInstanceHour)'
- 'Full documentation of valid values can be found in the AWS documentation:'
- 'U(https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#custom-termination-policy)'
default: Default
choices: ['OldestInstance', 'NewestInstance', 'OldestLaunchConfiguration', 'ClosestToNextInstanceHour', 'Default']
version_added: "2.0"
type: list
elements: str
notification_topic:
description:
- A SNS topic ARN to send auto scaling notifications to.
version_added: "2.2"
type: str
notification_types:
description:
- A list of auto scaling events to trigger notifications on.
default:
- 'autoscaling:EC2_INSTANCE_LAUNCH'
- 'autoscaling:EC2_INSTANCE_LAUNCH_ERROR'
- 'autoscaling:EC2_INSTANCE_TERMINATE'
- 'autoscaling:EC2_INSTANCE_TERMINATE_ERROR'
- 'autoscaling:EC2_INSTANCE_LAUNCH'
- 'autoscaling:EC2_INSTANCE_LAUNCH_ERROR'
- 'autoscaling:EC2_INSTANCE_TERMINATE'
- 'autoscaling:EC2_INSTANCE_TERMINATE_ERROR'
required: false
version_added: "2.2"
type: list
elements: str
suspend_processes:
description:
- A list of scaling processes to suspend.
- 'Valid values include:'
- C(Launch), C(Terminate), C(HealthCheck), C(ReplaceUnhealthy), C(AZRebalance), C(AlarmNotification), C(ScheduledActions), C(AddToLoadBalancer)
- 'Full documentation of valid values can be found in the AWS documentation:'
- 'U(https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html)'
default: []
choices: ['Launch', 'Terminate', 'HealthCheck', 'ReplaceUnhealthy', 'AZRebalance', 'AlarmNotification', 'ScheduledActions', 'AddToLoadBalancer']
version_added: "2.3"
type: list
elements: str
metrics_collection:
description:
- Enable ASG metrics collection
- Enable ASG metrics collection.
type: bool
default: 'no'
default: false
version_added: "2.6"
metrics_granularity:
description:
- When metrics_collection is enabled this will determine granularity of metrics collected by CloudWatch
default: "1minute"
- When I(metrics_collection=true) this will determine the granularity of metrics collected by CloudWatch.
default: "1Minute"
version_added: "2.6"
type: str
metrics_list:
description:
- List of autoscaling metrics to collect when enabling metrics_collection
- List of autoscaling metrics to collect when I(metrics_collection=true).
default:
- 'GroupMinSize'
- 'GroupMaxSize'
- 'GroupDesiredCapacity'
- 'GroupInServiceInstances'
- 'GroupPendingInstances'
- 'GroupStandbyInstances'
- 'GroupTerminatingInstances'
- 'GroupTotalInstances'
- 'GroupMinSize'
- 'GroupMaxSize'
- 'GroupDesiredCapacity'
- 'GroupInServiceInstances'
- 'GroupPendingInstances'
- 'GroupStandbyInstances'
- 'GroupTerminatingInstances'
- 'GroupTotalInstances'
version_added: "2.6"
type: list
elements: str
extends_documentation_fragment:
- aws
- ec2

@ -26,6 +26,7 @@ options:
description:
- The prefix or name of the auto scaling group(s) you are searching for.
- "Note: This is a regular expression match with implicit '^' (beginning of string). Append '$' for a complete name match."
type: str
required: false
tags:
description:
@ -33,6 +34,7 @@ options:
A dictionary/hash of tags in the format { tag1_name: 'tag1_value', tag2_name: 'tag2_value' } to match against the auto scaling
group(s) you are searching for.
required: false
type: dict
extends_documentation_fragment:
- aws
- ec2

@ -3,6 +3,9 @@
# Copyright: (c) 2017, Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'status': ['preview'],
'supported_by': 'community',
'metadata_version': '1.1'}
@ -24,23 +27,28 @@ options:
required: false
choices: ['present', 'absent']
default: present
type: str
lifecycle_hook_name:
description:
- The name of the lifecycle hook.
required: true
type: str
autoscaling_group_name:
description:
- The name of the Auto Scaling group to which you want to assign the lifecycle hook.
required: true
type: str
transition:
description:
- The instance state to which you want to attach the lifecycle hook.
required: true
choices: ['autoscaling:EC2_INSTANCE_TERMINATING', 'autoscaling:EC2_INSTANCE_LAUNCHING']
type: str
role_arn:
description:
- The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.
required: false
type: str
notification_target_arn:
description:
- The ARN of the notification target that Auto Scaling will use to notify you when an
@ -48,17 +56,20 @@ options:
This target can be either an SQS queue or an SNS topic. If you specify an empty string,
this overrides the current ARN.
required: false
type: str
notification_meta_data:
description:
- Contains additional information that you want to include any time Auto Scaling sends a message to the notification target.
required: false
type: str
heartbeat_timeout:
description:
- The amount of time, in seconds, that can elapse before the lifecycle hook times out.
When the lifecycle hook times out, Auto Scaling performs the default action.
You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat.
- By default amazon will use 3600 (1 hour)
required: false
default: 3600 (1 hour)
type: int
default_result:
description:
- Defines the action the Auto Scaling group should take when the lifecycle hook timeout
@ -66,6 +77,7 @@ options:
required: false
choices: ['ABANDON', 'CONTINUE']
default: ABANDON
type: str
extends_documentation_fragment:
- aws
- ec2

@ -1,17 +1,9 @@
#!/usr/bin/python
#
# This is a free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This Ansible library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this library. If not, see <http://www.gnu.org/licenses/>.
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
@ -23,7 +15,7 @@ DOCUMENTATION = '''
module: ec2_customer_gateway
short_description: Manage an AWS customer gateway
description:
- Manage an AWS customer gateway
- Manage an AWS customer gateway.
version_added: "2.2"
author: Michael Baydoun (@MichaelBaydoun)
requirements: [ botocore, boto3 ]
@ -36,26 +28,31 @@ notes:
options:
bgp_asn:
description:
- Border Gateway Protocol (BGP) Autonomous System Number (ASN), required when state=present.
- Border Gateway Protocol (BGP) Autonomous System Number (ASN), required when I(state=present).
type: int
ip_address:
description:
- Internet-routable IP address for customers gateway, must be a static address.
required: true
type: str
name:
description:
- Name of the customer gateway.
required: true
type: str
routing:
description:
- The type of routing.
choices: ['static', 'dynamic']
default: dynamic
version_added: '2.4'
type: str
state:
description:
- Create or terminate the Customer Gateway.
default: present
choices: [ 'present', 'absent' ]
type: str
extends_documentation_fragment:
- aws
- ec2
@ -104,13 +101,12 @@ gateway.customer_gateways:
state:
description: state of gateway.
returned: when gateway exists and is available.
state: available
sample: available
type: str
tags:
description: any tags on the gateway.
description: Any tags on the gateway.
returned: when gateway exists and is available, and when tags exist.
state: available
type: str
type: list
type:
description: encryption type.
returned: when gateway exists and is available.

@ -2,6 +2,9 @@
# Copyright: Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'status': ['preview'],
'supported_by': 'community',
'metadata_version': '1.1'}
@ -21,9 +24,12 @@ options:
description:
- A dict of filters to apply. Each dict item consists of a filter key and a filter value.
See U(https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeCustomerGateways.html) for possible filters.
type: dict
customer_gateway_ids:
description:
- Get details of a specific customer gateways using customer gateway ID/IDs. This value should be provided as a list.
type: list
elements: str
extends_documentation_fragment:
- aws
- ec2

@ -28,65 +28,73 @@ options:
required: false
aliases: [ instance_id ]
version_added: "2.0"
type: str
public_ip:
description:
- The IP address of a previously allocated EIP.
- If present and device is specified, the EIP is associated with the device.
- If absent and device is specified, the EIP is disassociated from the device.
- If C(present) and device is specified, the EIP is associated with the device.
- If C(absent) and device is specified, the EIP is disassociated from the device.
aliases: [ ip ]
type: str
state:
description:
- If present, allocate an EIP or associate an existing EIP with a device.
- If absent, disassociate the EIP from the device and optionally release it.
- If C(present), allocate an EIP or associate an existing EIP with a device.
- If C(absent), disassociate the EIP from the device and optionally release it.
choices: ['present', 'absent']
default: present
type: str
in_vpc:
description:
- Allocate an EIP inside a VPC or not. Required if specifying an ENI.
default: 'no'
- Allocate an EIP inside a VPC or not. Required if specifying an ENI with I(device_id).
default: false
type: bool
version_added: "1.4"
reuse_existing_ip_allowed:
description:
- Reuse an EIP that is not associated to a device (when available), instead of allocating a new one.
default: 'no'
default: false
type: bool
version_added: "1.6"
release_on_disassociation:
description:
- whether or not to automatically release the EIP when it is disassociated
default: 'no'
- Whether or not to automatically release the EIP when it is disassociated.
default: false
type: bool
version_added: "2.0"
private_ip_address:
description:
- The primary or secondary private IP address to associate with the Elastic IP address.
version_added: "2.3"
type: str
allow_reassociation:
description:
- Specify this option to allow an Elastic IP address that is already associated with another
network interface or instance to be re-associated with the specified instance or interface.
default: 'no'
default: false
type: bool
version_added: "2.5"
tag_name:
description:
- When reuse_existing_ip_allowed is true, supplement with this option to only reuse
an Elastic IP if it is tagged with tag_name.
default: 'no'
- When I(reuse_existing_ip_allowed=true), supplement with this option to only reuse
an Elastic IP if it is tagged with I(tag_name).
version_added: "2.9"
type: str
tag_value:
description:
- Supplements tag_name but also checks that the value of the tag provided in tag_name matches tag_value.
matches the tag_value
default: 'no'
- Supplements I(tag_name) but also checks that the value of the tag provided in I(tag_name) matches I(tag_value).
matches the I(tag_value)
version_added: "2.9"
type: str
public_ipv4_pool:
description:
- Allocates the new Elastic IP from the provided public IPv4 pool (BYOIP)
only applies to newly allocated Elastic IPs, isn't validated when reuse_existing_ip_allowed is true.
default: 'no'
version_added: "2.9"
type: str
wait_timeout:
description:
- The I(wait_timeout) option does nothing and will be removed in Ansible 2.14.
type: int
extends_documentation_fragment:
- aws
- ec2
@ -118,7 +126,7 @@ EXAMPLES = '''
ec2_eip:
device_id: eni-c8ad70f3
public_ip: 93.184.216.119
allow_reassociation: yes
allow_reassociation: true
- name: disassociate an elastic IP from an instance
ec2_eip:
@ -150,7 +158,7 @@ EXAMPLES = '''
keypair: mykey
instance_type: c1.medium
image: ami-40603AD1
wait: yes
wait: true
group: webserver
count: 3
register: ec2
@ -163,7 +171,7 @@ EXAMPLES = '''
- name: allocate a new elastic IP inside a VPC in us-west-2
ec2_eip:
region: us-west-2
in_vpc: yes
in_vpc: true
register: eip
- name: output the IP
@ -173,37 +181,37 @@ EXAMPLES = '''
- name: allocate eip - reuse unallocated ips (if found) with FREE tag
ec2_eip:
region: us-east-1
in_vpc: yes
reuse_existing_ip_allowed: yes
in_vpc: true
reuse_existing_ip_allowed: true
tag_name: FREE
- name: allocate eip - reuse unallocted ips if tag reserved is nope
ec2_eip:
region: us-east-1
in_vpc: yes
reuse_existing_ip_allowed: yes
in_vpc: true
reuse_existing_ip_allowed: true
tag_name: reserved
tag_value: nope
- name: allocate new eip - from servers given ipv4 pool
ec2_eip:
region: us-east-1
in_vpc: yes
in_vpc: true
public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02
- name: allocate eip - from a given pool (if no free addresses where dev-servers tag is dynamic)
ec2_eip:
region: us-east-1
in_vpc: yes
reuse_existing_ip_allowed: yes
in_vpc: true
reuse_existing_ip_allowed: true
tag_name: dev-servers
public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02
- name: allocate eip from pool - check if tag reserved_for exists and value is our hostname
ec2_eip:
region: us-east-1
in_vpc: yes
reuse_existing_ip_allowed: yes
in_vpc: true
reuse_existing_ip_allowed: true
tag_name: reserved_for
tag_value: "{{ inventory_hostname }}"
public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02
@ -528,7 +536,7 @@ def main():
default=False),
release_on_disassociation=dict(required=False, type='bool', default=False),
allow_reassociation=dict(type='bool', default=False),
wait_timeout=dict(default=300, type='int'),
wait_timeout=dict(type='int', removed_in_version='2.14'),
private_ip_address=dict(),
tag_name=dict(),
tag_value=dict(),

@ -2,6 +2,9 @@
# Copyright (c) 2017 Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
'supported_by': 'community'}
@ -24,6 +27,7 @@ options:
for possible filters. Filter names and values are case sensitive.
required: false
default: {}
type: dict
extends_documentation_fragment:
- aws
- ec2

@ -1,17 +1,9 @@
#!/usr/bin/python
#
# This is a free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This Ansible library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this library. If not, see <http://www.gnu.org/licenses/>.
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
@ -31,33 +23,43 @@ author: "Rob White (@wimnat)"
options:
eni_id:
description:
- The ID of the ENI (to modify); if null and state is present, a new eni will be created.
- The ID of the ENI (to modify).
- If I(eni_id=None) and I(state=present), a new eni will be created.
type: str
instance_id:
description:
- Instance ID that you wish to attach ENI to. Since version 2.2, use the 'attached' parameter to attach or
detach an ENI. Prior to 2.2, to detach an ENI from an instance, use 'None'.
- Instance ID that you wish to attach ENI to.
- Since version 2.2, use the I(attached) parameter to attach or detach an ENI. Prior to 2.2, to detach an ENI from an instance, use C(None).
type: str
private_ip_address:
description:
- Private IP address.
type: str
subnet_id:
description:
- ID of subnet in which to create the ENI.
type: str
description:
description:
- Optional description of the ENI.
type: str
security_groups:
description:
- List of security groups associated with the interface. Only used when state=present. Since version 2.2, you
can specify security groups by ID or by name or a combination of both. Prior to 2.2, you can specify only by ID.
- List of security groups associated with the interface. Only used when I(state=present).
- Since version 2.2, you can specify security groups by ID or by name or a combination of both. Prior to 2.2, you can specify only by ID.
type: list
elements: str
state:
description:
- Create or delete ENI
- Create or delete ENI.
default: present
choices: [ 'present', 'absent' ]
type: str
device_index:
description:
- The index of the device for the network interface attachment on the instance.
default: 0
type: int
attached:
description:
- Specifies if network interface should be attached or detached from instance. If omitted, attachment status
@ -66,9 +68,9 @@ options:
type: bool
force_detach:
description:
- Force detachment of the interface. This applies either when explicitly detaching the interface by setting instance_id
to None or when deleting an interface with state=absent.
default: 'no'
- Force detachment of the interface. This applies either when explicitly detaching the interface by setting I(instance_id=None)
or when deleting an interface with I(state=absent).
default: false
type: bool
delete_on_termination:
description:
@ -85,35 +87,38 @@ options:
secondary_private_ip_addresses:
description:
- A list of IP addresses to assign as secondary IP addresses to the network interface.
This option is mutually exclusive of secondary_private_ip_address_count
This option is mutually exclusive of I(secondary_private_ip_address_count)
required: false
version_added: 2.2
type: list
elements: str
purge_secondary_private_ip_addresses:
description:
- To be used with I(secondary_private_ip_addresses) to determine whether or not to remove any secondary IP addresses other than those specified.
Set secondary_private_ip_addresses to an empty list to purge all secondary addresses.
default: no
- Set I(secondary_private_ip_addresses=[]) to purge all secondary addresses.
default: false
type: bool
version_added: 2.5
secondary_private_ip_address_count:
description:
- The number of secondary IP addresses to assign to the network interface. This option is mutually exclusive of secondary_private_ip_addresses
- The number of secondary IP addresses to assign to the network interface. This option is mutually exclusive of I(secondary_private_ip_addresses)
required: false
version_added: 2.2
type: int
allow_reassignment:
description:
- Indicates whether to allow an IP address that is already assigned to another network interface or instance
to be reassigned to the specified network interface.
required: false
default: 'no'
default: false
type: bool
version_added: 2.7
extends_documentation_fragment:
- aws
- ec2
notes:
- This module identifies and ENI based on either the eni_id, a combination of private_ip_address and subnet_id,
or a combination of instance_id and device_id. Any of these options will let you specify a particular ENI.
- This module identifies and ENI based on either the I(eni_id), a combination of I(private_ip_address) and I(subnet_id),
or a combination of I(instance_id) and I(device_id). Any of these options will let you specify a particular ENI.
'''
EXAMPLES = '''
@ -158,7 +163,7 @@ EXAMPLES = '''
# Destroy an ENI, detaching it from any instance if necessary
- ec2_eni:
eni_id: eni-xxxxxxx
force_detach: yes
force_detach: true
state: absent
# Update an ENI

@ -1,17 +1,9 @@
#!/usr/bin/python
#
# This is a free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This Ansible library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this library. If not, see <http://www.gnu.org/licenses/>.
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
@ -23,7 +15,7 @@ DOCUMENTATION = '''
module: ec2_eni_info
short_description: Gather information about ec2 ENI interfaces in AWS
description:
- Gather information about ec2 ENI interfaces in AWS
- Gather information about ec2 ENI interfaces in AWS.
- This module was called C(ec2_eni_facts) before Ansible 2.9. The usage did not change.
version_added: "2.0"
author: "Rob White (@wimnat)"
@ -33,6 +25,7 @@ options:
description:
- A dict of filters to apply. Each dict item consists of a filter key and a filter value.
See U(https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html) for possible filters.
type: dict
extends_documentation_fragment:
- aws
- ec2

@ -1,19 +1,10 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['stableinterface'],
@ -27,7 +18,7 @@ version_added: "1.3"
requirements: [ boto3 ]
short_description: maintain an ec2 VPC security group.
description:
- maintains ec2 security groups. This module has a dependency on python-boto >= 2.5
- Maintains ec2 security groups. This module has a dependency on python-boto >= 2.5.
options:
name:
description:
@ -35,20 +26,24 @@ options:
- One of and only one of I(name) or I(group_id) is required.
- Required if I(state=present).
required: false
type: str
group_id:
description:
- Id of group to delete (works only with absent).
- One of and only one of I(name) or I(group_id) is required.
required: false
version_added: "2.4"
type: str
description:
description:
- Description of the security group. Required when C(state) is C(present).
required: false
type: str
vpc_id:
description:
- ID of the VPC to create the group in.
required: false
type: str
rules:
description:
- List of firewall inbound rules to enforce in this group (see example). If none are supplied,
@ -58,6 +53,60 @@ options:
source type as well as multiple source types per rule. Prior to 2.4 an individual source is allowed.
In version 2.5 support for rule descriptions was added.
required: false
type: list
elements: dict
suboptions:
cidr_ip:
type: str
description:
- The IPv4 CIDR range traffic is coming from.
- You can specify only one of I(cidr_ip), I(cidr_ipv6), I(ip_prefix), I(group_id)
and I(group_name).
cidr_ipv6:
type: str
description:
- The IPv6 CIDR range traffic is coming from.
- You can specify only one of I(cidr_ip), I(cidr_ipv6), I(ip_prefix), I(group_id)
and I(group_name).
ip_prefix:
type: str
description:
- The IP Prefix U(https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-prefix-lists.html)
that traffic is coming from.
- You can specify only one of I(cidr_ip), I(cidr_ipv6), I(ip_prefix), I(group_id)
and I(group_name).
group_id:
type: str
description:
- The ID of the Security Group that traffic is coming from.
- You can specify only one of I(cidr_ip), I(cidr_ipv6), I(ip_prefix), I(group_id)
and I(group_name).
group_name:
type: str
description:
- Name of the Security Group that traffic is coming from.
- If the Security Group doesn't exist a new Security Group will be
created with I(group_desc) as the description.
- You can specify only one of I(cidr_ip), I(cidr_ipv6), I(ip_prefix), I(group_id)
and I(group_name).
group_desc:
type: str
description:
- If the I(group_name) is set and the Security Group doesn't exist a new Security Group will be
created with I(group_desc) as the description.
proto:
type: str
description:
- The IP protocol name (C(tcp), C(udp), C(icmp), C(icmpv6)) or number (U(https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers))
from_port:
type: int
description: The start of the range of ports that traffic is coming from. A value of C(-1) indicates all ports.
to_port:
type: int
description: The end of the range of ports that traffic is coming from. A value of C(-1) indicates all ports.
rule_desc:
type: str
description: A description for the rule.
rules_egress:
description:
- List of firewall outbound rules to enforce in this group (see example). If none are supplied,
@ -66,18 +115,73 @@ options:
was added.
required: false
version_added: "1.6"
type: list
elements: dict
suboptions:
cidr_ip:
type: str
description:
- The IPv4 CIDR range traffic is going to.
- You can specify only one of I(cidr_ip), I(cidr_ipv6), I(ip_prefix), I(group_id)
and I(group_name).
cidr_ipv6:
type: str
description:
- The IPv6 CIDR range traffic is going to.
- You can specify only one of I(cidr_ip), I(cidr_ipv6), I(ip_prefix), I(group_id)
and I(group_name).
ip_prefix:
type: str
description:
- The IP Prefix U(https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-prefix-lists.html)
that traffic is going to.
- You can specify only one of I(cidr_ip), I(cidr_ipv6), I(ip_prefix), I(group_id)
and I(group_name).
group_id:
type: str
description:
- The ID of the Security Group that traffic is going to.
- You can specify only one of I(cidr_ip), I(cidr_ipv6), I(ip_prefix), I(group_id)
and I(group_name).
group_name:
type: str
description:
- Name of the Security Group that traffic is going to.
- If the Security Group doesn't exist a new Security Group will be
created with I(group_desc) as the description.
- You can specify only one of I(cidr_ip), I(cidr_ipv6), I(ip_prefix), I(group_id)
and I(group_name).
group_desc:
type: str
description:
- If the I(group_name) is set and the Security Group doesn't exist a new Security Group will be
created with I(group_desc) as the description.
proto:
type: str
description:
- The IP protocol name (C(tcp), C(udp), C(icmp), C(icmpv6)) or number (U(https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers))
from_port:
type: int
description: The start of the range of ports that traffic is going to. A value of C(-1) indicates all ports.
to_port:
type: int
description: The end of the range of ports that traffic is going to. A value of C(-1) indicates all ports.
rule_desc:
type: str
description: A description for the rule.
state:
version_added: "1.4"
description:
- Create or delete a security group
- Create or delete a security group.
required: false
default: 'present'
choices: [ "present", "absent" ]
aliases: []
type: str
purge_rules:
version_added: "1.8"
description:
- Purge existing rules on security group that are not found in rules
- Purge existing rules on security group that are not found in rules.
required: false
default: 'true'
aliases: []
@ -85,7 +189,7 @@ options:
purge_rules_egress:
version_added: "1.8"
description:
- Purge existing rules_egress on security group that are not found in rules_egress
- Purge existing rules_egress on security group that are not found in rules_egress.
required: false
default: 'true'
aliases: []
@ -95,6 +199,8 @@ options:
description:
- A dictionary of one or more tags to assign to the security group.
required: false
type: dict
aliases: ['resource_tags']
purge_tags:
version_added: "2.4"
description:

@ -31,6 +31,7 @@ options:
instead of dashes (-) in the filter keys, which will take precedence in case of conflict.
required: false
default: {}
type: dict
notes:
- By default, the module will return all security groups. To limit results use the appropriate filters.

@ -24,10 +24,12 @@ options:
description:
- Name of the key pair.
required: true
type: str
key_material:
description:
- Public key material.
required: false
type: str
force:
description:
- Force overwrite of already existing key pair if key has changed.
@ -41,19 +43,18 @@ options:
required: false
choices: [ present, absent ]
default: 'present'
type: str
wait:
description:
- Wait for the specified action to complete before returning. This option has no effect since version 2.5.
required: false
default: false
type: bool
- This option has no effect since version 2.5 and will be removed in 2.14.
version_added: "1.6"
type: bool
wait_timeout:
description:
- How long before wait gives up, in seconds. This option has no effect since version 2.5.
required: false
default: 300
- This option has no effect since version 2.5 and will be removed in 2.14.
version_added: "1.6"
type: int
required: false
extends_documentation_fragment:
- aws
@ -248,8 +249,8 @@ def main():
key_material=dict(),
force=dict(type='bool', default=True),
state=dict(default='present', choices=['present', 'absent']),
wait=dict(type='bool', default=False),
wait_timeout=dict(default=300, type='int')
wait=dict(type='bool', removed_in_version='2.14'),
wait_timeout=dict(type='int', removed_in_version='2.14')
)
)

@ -34,13 +34,16 @@ options:
description:
- The ID for the launch template, can be used for all cases except creating a new Launch Template.
aliases: [id]
type: str
template_name:
description:
- The template name. This must be unique in the region-account combination you are using.
aliases: [name]
type: str
default_version:
description:
- Which version should be the default when users spin up new instances based on this template? By default, the latest version will be made the default.
type: str
default: latest
state:
description:
@ -48,6 +51,7 @@ options:
- Deleting specific versions of a launch template is not supported at this time.
choices: [present, absent]
default: present
type: str
block_device_mappings:
description:
- The block device mapping. Supplying both a snapshot ID and an encryption
@ -56,11 +60,15 @@ options:
created from a snapshot. If a snapshot is the basis for the volume, it
contains data by definition and its encryption status cannot be changed
using this action.
type: list
elements: dict
suboptions:
device_name:
description: The device name (for example, /dev/sdh or xvdh).
type: str
no_device:
description: Suppresses the specified device included in the block device mapping of the AMI.
type: str
virtual_name:
description: >
The virtual device name (ephemeralN). Instance store volumes are
@ -68,8 +76,10 @@ options:
store volumes can specify mappings for ephemeral0 and ephemeral1. The
number of available instance store volumes depends on the instance
type. After you connect to the instance, you must mount the volume.
type: str
ebs:
description: Parameters used to automatically set up EBS volumes when the instance is launched.
description: Parameters used to automatically set up EBS volumes when the instance is launchedself
type: dict
suboptions:
delete_on_termination:
description: Indicates whether the EBS volume is deleted on instance termination.
@ -80,6 +90,7 @@ options:
can only be attached to instances that support Amazon EBS
encryption. If you are creating a volume from a snapshot, you
can't specify an encryption value.
type: bool
iops:
description:
- The number of I/O operations per second (IOPS) that the volume
@ -94,36 +105,45 @@ options:
Condition: This parameter is required for requests to create io1
volumes; it is not used in requests to create gp2, st1, sc1, or
standard volumes.
type: int
kms_key_id:
description: The ARN of the AWS Key Management Service (AWS KMS) CMK used for encryption.
type: str
snapshot_id:
description: The ID of the snapshot to create the volume from
description: The ID of the snapshot to create the volume from.
type: str
volume_size:
description:
- The size of the volume, in GiB.
- "Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size."
type: int
volume_type:
description: The volume type
type: str
cpu_options:
description:
- Choose CPU settings for the EC2 instances that will be created with this template.
- For more information, see U(http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html)
type: dict
suboptions:
core_count:
description: The number of CPU cores for the instance.
type: int
threads_per_core:
description: >
The number of threads per CPU core. To disable Intel Hyper-Threading
Technology for the instance, specify a value of 1. Otherwise, specify
the default value of 2.
type: int
credit_specification:
description: The credit option for CPU usage of the instance. Valid for T2 or T3 instances only.
description: The credit option for CPU usage of the instance. Valid for T2 or T3 instances onlyself.
type: dict
suboptions:
cpu_credits:
description: >
The credit option for CPU usage of a T2 or T3 instance. Valid values
are I(standard) and I(unlimited).
choices: [standard, unlimited]
are C(standard) and C(unlimited).
type: str
disable_api_termination:
description: >
This helps protect instances from accidental termination. If set to true,
@ -140,69 +160,86 @@ options:
charges apply when using an EBS-optimized instance.
type: bool
elastic_gpu_specifications:
type: list
elements: dict
description: Settings for Elastic GPU attachments. See U(https://aws.amazon.com/ec2/elastic-gpus/) for details.
suboptions:
type:
description: The type of Elastic GPU to attach
type: str
iam_instance_profile:
description: >
The name or ARN of an IAM instance profile. Requires permissions to
describe existing instance roles to confirm ARN is properly formed.
type: str
image_id:
description: >
The AMI ID to use for new instances launched with this template. This
value is region-dependent since AMIs are not global resources.
type: str
instance_initiated_shutdown_behavior:
description: >
Indicates whether an instance stops or terminates when you initiate
shutdown from the instance using the operating system shutdown command.
choices: [stop, terminate]
type: str
instance_market_options:
description: Options for alternative instance markets, currently only the spot market is supported.
type: dict
suboptions:
market_type:
description: The market type. This should always be 'spot'.
type: str
spot_options:
description: Spot-market specific settings
description: Spot-market specific settings.
type: dict
suboptions:
block_duration_minutes:
description: >
The required duration for the Spot Instances (also known as Spot
blocks), in minutes. This value must be a multiple of 60 (60,
120, 180, 240, 300, or 360).
type: int
instance_interruption_behavior:
description: The behavior when a Spot Instance is interrupted. The default is I(terminate)
description: The behavior when a Spot Instance is interrupted. The default is C(terminate).
choices: [hibernate, stop, terminate]
type: str
max_price:
description: The highest hourly price you're willing to pay for this Spot Instance.
type: str
spot_instance_type:
description: The request type to send.
choices: [one-time, persistent]
type: dict
type: str
instance_type:
description: >
The instance type, such as I(c5.2xlarge). For a full list of instance types, see
The instance type, such as C(c5.2xlarge). For a full list of instance types, see
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
type: str
kernel_id:
description: >
The ID of the kernel. We recommend that you use PV-GRUB instead of
kernels and RAM disks. For more information, see
U(http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html)
type: str
key_name:
description:
- The name of the key pair. You can create a key pair using
I(CreateKeyPair) or I(ImportKeyPair).
- The name of the key pair. You can create a key pair using M(ec2_key).
- If you do not specify a key pair, you can't connect to the instance
unless you choose an AMI that is configured to allow users another way to
log in.
type: str
monitoring:
description: Settings for instance monitoring
description: Settings for instance monitoring.
type: dict
suboptions:
enabled:
type: bool
description: Whether to turn on detailed monitoring for new instances. This will incur extra charges.
network_interfaces:
description: One or more network interfaces.
type: list
elements: dict
suboptions:
associate_public_ip_address:
description: Associates a public IPv4 address with eth0 for a new network interface.
@ -212,63 +249,71 @@ options:
type: bool
description:
description: A description for the network interface.
type: str
device_index:
description: The device index for the network interface attachment.
type: int
groups:
description: List of security group IDs to include on this instance
description: List of security group IDs to include on this instance.
type: list
elements: str
ipv6_address_count:
description: >
The number of IPv6 addresses to assign to a network interface. Amazon
EC2 automatically selects the IPv6 addresses from the subnet range.
You can't use this option if specifying the I(ipv6_addresses) option.
type: int
ipv6_addresses:
description: >
A list of one or more specific IPv6 addresses from the IPv6 CIDR
block range of your subnet. You can't use this option if you're
specifying the I(ipv6_address_count) option.
type: list
elements: int
network_interface_id:
description: The eni ID of a network interface to attach.
type: str
private_ip_address:
description: The primary private IPv4 address of the network interface.
private_ip_addresses:
description: One or more private IPv4 addresses.
suboptions:
primary:
description: >
Indicates whether the private IPv4 address is the primary private
IPv4 address. Only one IPv4 address can be designated as primary.
private_ip_address:
description: The primary private IPv4 address of the network interface.
type: str
subnet_id:
description: The ID of the subnet for the network interface.
secondary_private_ip_address_count:
description: The number of secondary private IPv4 addresses to assign to a network interface.
type: str
placement:
description: The placement group settings for the instance.
type: dict
suboptions:
affinity:
description: The affinity setting for an instance on a Dedicated Host.
type: str
availability_zone:
description: The Availability Zone for the instance.
type: str
group_name:
description: The name of the placement group for the instance.
type: str
host_id:
description: The ID of the Dedicated Host for the instance.
type: str
tenancy:
description: >
The tenancy of the instance (if the instance is running in a VPC). An
instance with a tenancy of dedicated runs on single-tenant hardware.
type: str
ram_disk_id:
description: >
The ID of the RAM disk to launch the instance with. We recommend that you
use PV-GRUB instead of kernels and RAM disks. For more information, see
U(http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html)
type: str
security_group_ids:
description: A list of security group IDs (VPC or EC2-Classic) that the new instances will be added to.
type: list
elements: str
security_groups:
description: A list of security group names (VPC or EC2-Classic) that the new instances will be added to.
type: list
elements: str
tags:
type: dict
description:
@ -281,6 +326,7 @@ options:
U(http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) and Windows
U(http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data)
documentation on user-data.
type: str
'''
EXAMPLES = '''

@ -1,18 +1,10 @@
#!/usr/bin/python
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['stableinterface'],
@ -26,8 +18,8 @@ module: ec2_lc
short_description: Create or delete AWS Autoscaling Launch Configurations
description:
- Can create or delete AWS Autoscaling Configurations
- Works with the ec2_asg module to manage Autoscaling Groups
- Can create or delete AWS Autoscaling Configurations.
- Works with the ec2_asg module to manage Autoscaling Groups.
notes:
- Amazon ASG Autoscaling Launch Configurations are immutable once created, so modifying the configuration after it is changed will not modify the
@ -43,89 +35,117 @@ author:
options:
state:
description:
- Register or deregister the instance
- Register or deregister the instance.
default: present
choices: ['present', 'absent']
type: str
name:
description:
- Unique name for configuration
- Unique name for configuration.
required: true
type: str
instance_type:
description:
- Instance type to use for the instance
- Instance type to use for the instance.
required: true
type: str
image_id:
description:
- The AMI unique identifier to be used for the group
- The AMI unique identifier to be used for the group.
type: str
key_name:
description:
- The SSH key name to be used for access to managed instances
- The SSH key name to be used for access to managed instances.
type: str
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.
type: list
elements: 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.
type: list
elements: dict
user_data:
description:
- Opaque blob of data which is made available to the ec2 instance. Mutually exclusive with I(user_data_path).
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"
type: path
kernel_id:
description:
- Kernel id for the EC2 instance
- Kernel id for the EC2 instance.
type: str
spot_price:
description:
- The spot price you are bidding. Only applies for an autoscaling group with spot instances.
type: float
instance_monitoring:
description:
- Specifies whether instances are launched with detailed monitoring.
type: bool
default: 'no'
default: false
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"
type: bool
ramdisk_id:
description:
- A RAM disk id for the instances.
version_added: "1.8"
type: str
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"
type: str
ebs_optimized:
description:
- Specifies whether the instance is optimized for EBS I/O (true) or not (false).
default: false
version_added: "1.8"
type: bool
classic_link_vpc_id:
description:
- Id of ClassicLink enabled VPC
version_added: "2.0"
type: str
classic_link_vpc_security_groups:
description:
- A list of security group IDs with which to associate the ClassicLink VPC instances.
version_added: "2.0"
type: list
elements: str
vpc_id:
description:
- VPC ID, used when resolving security group names to IDs.
version_added: "2.4"
type: str
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.
- The Id of a running instance to use as a basis for a launch configuration. Can be used in place of I(image_id) and I(instance_type).
version_added: "2.4"
type: str
placement_tenancy:
description:
- Determines whether the instance runs on single-tenant hardware or not.
default: 'default'
- When not set AWS will default to C(default).
version_added: "2.4"
type: str
choices: ['default', 'dedicated']
associate_public_ip_address:
description:
- The I(wait_timeout) option does nothing and will be removed in Ansible 2.14.
type: bool
extends_documentation_fragment:
- aws
@ -228,8 +248,8 @@ result:
associate_public_ip_address:
description: (EC2-VPC) Indicates whether to assign a public IP address to each instance.
returned: when I(state=present)
type: NoneType
sample: null
type: bool
sample: false
block_device_mappings:
description: A block device mapping, which specifies the block devices.
returned: when I(state=present)
@ -248,8 +268,7 @@ result:
snapshot_id:
description: The ID of the snapshot.
returned: when I(state=present)
type: NoneType
sample: null
type: str
volume_size:
description: The volume size, in GiB.
returned: when I(state=present)
@ -258,13 +277,12 @@ result:
virtual_name:
description: The name of the virtual device (for example, ephemeral0).
returned: when I(state=present)
type: NoneType
sample: null
type: str
sample: ephemeral0
classic_link_vpc_id:
description: The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to.
returned: when I(state=present)
type: NoneType
sample: null
type: str
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)
@ -308,8 +326,7 @@ result:
iops:
description: The number of I/O operations per second (IOPS) to provision for the volume.
returned: when I(state=present)
type: NoneType
sample: null
type: int
kernel_id:
description: The ID of the kernel associated with the AMI.
returned: when I(state=present)
@ -349,8 +366,7 @@ result:
spot_price:
description: The price to bid when launching Spot Instances.
returned: when I(state=present)
type: NoneType
sample: null
type: float
use_block_device_types:
description: Indicates whether to suppress a device mapping.
returned: when I(state=present)
@ -364,8 +380,8 @@ result:
volume_type:
description: The volume type (one of standard, io1, gp2).
returned: when I(state=present)
type: NoneType
sample: null
type: str
sample: io1
security_groups:
description: The security groups to associate with the instances.
returned: when I(state=present)
@ -589,7 +605,7 @@ def main():
ramdisk_id=dict(),
instance_profile_name=dict(),
ebs_optimized=dict(default=False, type='bool'),
associate_public_ip_address=dict(type='bool'),
associate_public_ip_address=dict(type='bool', removed_in_version='2.14'),
instance_monitoring=dict(default=False, type='bool'),
assign_public_ip=dict(type='bool'),
classic_link_vpc_security_groups=dict(type='list'),

@ -18,37 +18,36 @@ DOCUMENTATION = """
module: ec2_lc_find
short_description: Find AWS Autoscaling Launch Configurations
description:
- Returns list of matching Launch Configurations for a given name, along with other useful information
- Results can be sorted and sliced
- It depends on boto
- Based on the work by Tom Bamford (https://github.com/tombamford)
- Returns list of matching Launch Configurations for a given name, along with other useful information.
- Results can be sorted and sliced.
- It depends on boto.
- Based on the work by Tom Bamford U(https://github.com/tombamford)
version_added: "2.2"
author: "Jose Armesto (@fiunchinho)"
options:
region:
description:
- The AWS region to use.
required: true
aliases: ['aws_region', 'ec2_region']
name_regex:
description:
- A Launch Configuration to match
- It'll be compiled as regex
- A Launch Configuration to match.
- It'll be compiled as regex.
required: True
type: str
sort_order:
description:
- Order in which to sort results.
choices: ['ascending', 'descending']
default: 'ascending'
type: str
limit:
description:
- How many results to show.
- Corresponds to Python slice notation like list[:limit].
type: int
requirements:
- "python >= 2.6"
- boto3
extends_documentation_fragment:
- ec2
- aws
"""
@ -198,7 +197,6 @@ def find_launch_configs(client, module):
def main():
argument_spec = ec2_argument_spec()
argument_spec.update(dict(
region=dict(required=True, aliases=['aws_region', 'ec2_region']),
name_regex=dict(required=True),
sort_order=dict(required=False, default='ascending', choices=['ascending', 'descending']),
limit=dict(required=False, type='int'),

@ -15,9 +15,9 @@ ANSIBLE_METADATA = {'metadata_version': '1.1',
DOCUMENTATION = '''
---
module: ec2_lc_info
short_description: Gather information about AWS Autoscaling Launch Configurations
short_description: Gather information about AWS Autoscaling Launch Configurations.
description:
- Gather information about AWS Autoscaling Launch Configurations
- Gather information about AWS Autoscaling Launch Configurations.
- This module was called C(ec2_lc_facts) before Ansible 2.9. The usage did not change.
version_added: "2.3"
author: "Loïc Latreille (@psykotox)"
@ -27,24 +27,30 @@ options:
description:
- A name or a list of name to match.
default: []
type: list
elements: str
sort:
description:
- Optional attribute which with to sort the results.
choices: ['launch_configuration_name', 'image_id', 'created_time', 'instance_type', 'kernel_id', 'ramdisk_id', 'key_name']
type: str
sort_order:
description:
- Order in which to sort results.
- Only used when the 'sort' parameter is specified.
choices: ['ascending', 'descending']
default: 'ascending'
type: str
sort_start:
description:
- Which result to start with (when sorting).
- Corresponds to Python slice notation.
type: int
sort_end:
description:
- Which result to end with (when sorting).
- Corresponds to Python slice notation.
type: int
extends_documentation_fragment:
- aws
- ec2
@ -186,15 +192,12 @@ def list_launch_configs(connection, module):
if sort:
snaked_launch_configs.sort(key=lambda e: e[sort], reverse=(sort_order == 'descending'))
try:
if sort and sort_start and sort_end:
snaked_launch_configs = snaked_launch_configs[int(sort_start):int(sort_end)]
elif sort and sort_start:
snaked_launch_configs = snaked_launch_configs[int(sort_start):]
elif sort and sort_end:
snaked_launch_configs = snaked_launch_configs[:int(sort_end)]
except TypeError:
module.fail_json(msg="Please supply numeric values for sort_start and/or sort_end")
if sort and sort_start and sort_end:
snaked_launch_configs = snaked_launch_configs[sort_start:sort_end]
elif sort and sort_start:
snaked_launch_configs = snaked_launch_configs[sort_start:]
elif sort and sort_end:
snaked_launch_configs = snaked_launch_configs[:sort_end]
module.exit_json(launch_configurations=snaked_launch_configs)
@ -208,8 +211,8 @@ def main():
choices=['launch_configuration_name', 'image_id', 'created_time', 'instance_type', 'kernel_id', 'ramdisk_id', 'key_name']),
sort_order=dict(required=False, default='ascending',
choices=['ascending', 'descending']),
sort_start=dict(required=False),
sort_end=dict(required=False),
sort_start=dict(required=False, type='int'),
sort_end=dict(required=False, type='int'),
)
)

@ -23,7 +23,7 @@ author:
description:
- This module fetches data from the instance metadata endpoint in ec2 as per
U(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html).
The module must be called from within the EC2 instance itself.
- The module must be called from within the EC2 instance itself.
notes:
- Parameters to filter on ec2_metadata_facts may be added later.
'''
@ -50,19 +50,19 @@ ansible_facts:
ansible_ec2_ami_launch_index:
description:
- If you started more than one instance at the same time, this value indicates the order in which the instance was launched.
The value of the first instance launched is 0.
- The value of the first instance launched is 0.
type: str
sample: "0"
ansible_ec2_ami_manifest_path:
description:
- The path to the AMI manifest file in Amazon S3.
If you used an Amazon EBS-backed AMI to launch the instance, the returned result is unknown.
- If you used an Amazon EBS-backed AMI to launch the instance, the returned result is unknown.
type: str
sample: "(unknown)"
ansible_ec2_ancestor_ami_ids:
description:
- The AMI IDs of any instances that were rebundled to create this AMI.
This value will only exist if the AMI manifest file contained an ancestor-amis key.
- This value will only exist if the AMI manifest file contained an ancestor-amis key.
type: str
sample: "(unknown)"
ansible_ec2_block_device_mapping_ami:
@ -72,8 +72,8 @@ ansible_facts:
ansible_ec2_block_device_mapping_ebsN:
description:
- The virtual devices associated with Amazon EBS volumes, if any are present.
Amazon EBS volumes are only available in metadata if they were present at launch time or when the instance was last started.
The N indicates the index of the Amazon EBS volume (such as ebs1 or ebs2).
- Amazon EBS volumes are only available in metadata if they were present at launch time or when the instance was last started.
- The N indicates the index of the Amazon EBS volume (such as ebs1 or ebs2).
type: str
sample: "/dev/xvdb"
ansible_ec2_block_device_mapping_ephemeralN:
@ -97,7 +97,7 @@ ansible_facts:
ansible_ec2_hostname:
description:
- The private IPv4 DNS hostname of the instance.
In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which the device number is 0).
- In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which the device number is 0).
type: str
sample: "ip-10-0-0-1.ec2.internal"
ansible_ec2_iam_info:
@ -106,6 +106,16 @@ ansible_facts:
including the instance's LastUpdated date, InstanceProfileArn, and InstanceProfileId. Otherwise, not present.
type: complex
sample: ""
contains:
LastUpdated:
description: The last time which InstanceProfile is associated with the Instance changed.
type: str
InstanceProfileArn:
description: The ARN of the InstanceProfile associated with the Instance.
type: str
InstanceProfileId:
description: The Id of the InstanceProfile associated with the Instance.
type: str
ansible_ec2_iam_info_instanceprofilearn:
description: The IAM instance profile ARN.
type: str
@ -211,7 +221,7 @@ ansible_facts:
ansible_ec2_instance_identity_document_privateip:
description:
- The private IPv4 address of the instance.
In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which the device number is 0).
- In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which the device number is 0).
type: str
sample: "10.0.0.1"
ansible_ec2_instance_identity_document_ramdiskid:
@ -245,19 +255,19 @@ ansible_facts:
ansible_ec2_local_hostname:
description:
- The private IPv4 DNS hostname of the instance.
In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which the device number is 0).
- In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which the device number is 0).
type: str
sample: "ip-10-0-0-1.ec2.internal"
ansible_ec2_local_ipv4:
description:
- The private IPv4 address of the instance.
In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which the device number is 0).
- In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which the device number is 0).
type: str
sample: "10.0.0.1"
ansible_ec2_mac:
description:
- The instance's media access control (MAC) address.
In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which the device number is 0).
- In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which the device number is 0).
type: str
sample: "00:11:22:33:44:55"
ansible_ec2_metrics_vhostmd:
@ -268,7 +278,7 @@ ansible_facts:
description:
- The unique device number associated with that interface. The device number corresponds to the device name;
for example, a device-number of 2 is for the eth2 device.
This category corresponds to the DeviceIndex and device-index fields that are used by the Amazon EC2 API and the EC2 commands for the AWS CLI.
- This category corresponds to the DeviceIndex and device-index fields that are used by the Amazon EC2 API and the EC2 commands for the AWS CLI.
type: str
sample: "0"
ansible_ec2_network_interfaces_macs_<mac address>_interface_id:
@ -298,8 +308,8 @@ ansible_facts:
ansible_ec2_network_interfaces_macs_<mac address>_owner_id:
description:
- The ID of the owner of the network interface.
In multiple-interface environments, an interface can be attached by a third party, such as Elastic Load Balancing.
Traffic on an interface is always billed to the interface owner.
- In multiple-interface environments, an interface can be attached by a third party, such as Elastic Load Balancing.
- Traffic on an interface is always billed to the interface owner.
type: str
sample: "01234567890"
ansible_ec2_network_interfaces_macs_<mac address>_public_hostname:
@ -388,7 +398,7 @@ ansible_facts:
ansible_ec2_security_groups:
description:
- The names of the security groups applied to the instance. After launch, you can only change the security groups of instances running in a VPC.
Such changes are reflected here and in network/interfaces/macs/mac/security-groups.
- Such changes are reflected here and in network/interfaces/macs/mac/security-groups.
type: str
sample: "securitygroup1,securitygroup2"
ansible_ec2_services_domain:
@ -398,15 +408,15 @@ ansible_facts:
ansible_ec2_services_partition:
description:
- The partition that the resource is in. For standard AWS regions, the partition is aws.
If you have resources in other partitions, the partition is aws-partitionname.
For example, the partition for resources in the China (Beijing) region is aws-cn.
- If you have resources in other partitions, the partition is aws-partitionname.
- For example, the partition for resources in the China (Beijing) region is aws-cn.
type: str
sample: "aws"
ansible_ec2_spot_termination_time:
description:
- The approximate time, in UTC, that the operating system for your Spot instance will receive the shutdown signal.
This item is present and contains a time value only if the Spot instance has been marked for termination by Amazon EC2.
The termination-time item is not set to a time if you terminated the Spot instance yourself.
- This item is present and contains a time value only if the Spot instance has been marked for termination by Amazon EC2.
- The termination-time item is not set to a time if you terminated the Spot instance yourself.
type: str
sample: "2015-01-05T18:02:00Z"
ansible_ec2_user_data:

@ -22,49 +22,59 @@ author: "Zacharie Eakin (@Zeekin)"
options:
state:
description:
- register or deregister the alarm
required: true
- Register or deregister the alarm.
choices: ['present', 'absent']
default: 'present'
type: str
name:
description:
- Unique name for the alarm
- Unique name for the alarm.
required: true
type: str
metric:
description:
- Name of the monitored metric (e.g. CPUUtilization)
- Metric must already exist
- Name of the monitored metric (e.g. C(CPUUtilization)).
- Metric must already exist.
required: false
type: str
namespace:
description:
- Name of the appropriate namespace ('AWS/EC2', 'System/Linux', etc.), which determines the category it will appear under in cloudwatch
- Name of the appropriate namespace (C(AWS/EC2), C(System/Linux), etc.), which determines the category it will appear under in cloudwatch.
required: false
type: str
statistic:
description:
- Operation applied to the metric
- Works in conjunction with period and evaluation_periods to determine the comparison value
- Operation applied to the metric.
- Works in conjunction with I(period) and I(evaluation_periods) to determine the comparison value.
required: false
choices: ['SampleCount','Average','Sum','Minimum','Maximum']
type: str
comparison:
description:
- Determines how the threshold value is compared
- Determines how the threshold value is compared.
required: false
choices: ['<=','<','>','>=']
type: str
threshold:
description:
- Sets the min/max bound for triggering the alarm
- Sets the min/max bound for triggering the alarm.
required: false
type: float
period:
description:
- The time (in seconds) between metric evaluations
- The time (in seconds) between metric evaluations.
required: false
type: int
evaluation_periods:
description:
- The number of times in which the metric is evaluated before final calculation
- The number of times in which the metric is evaluated before final calculation.
required: false
type: int
unit:
description:
- The threshold's unit of measurement
- The threshold's unit of measurement.
required: false
type: str
choices:
- 'Seconds'
- 'Microseconds'
@ -95,24 +105,34 @@ options:
- 'None'
description:
description:
- A longer description of the alarm
- A longer description of the alarm.
required: false
type: str
dimensions:
description:
- Describes to what the alarm is applied
- A dictionary describing which metric the alarm is applied to.
- 'For more information see the AWS documentation:'
- U(https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension)
required: false
type: dict
alarm_actions:
description:
- A list of the names action(s) taken when the alarm is in the 'alarm' status, denoted as Amazon Resource Name(s)
- A list of the names action(s) taken when the alarm is in the C(alarm) status, denoted as Amazon Resource Name(s).
required: false
type: list
elements: str
insufficient_data_actions:
description:
- A list of the names of action(s) to take when the alarm is in the 'insufficient_data' status
- A list of the names of action(s) to take when the alarm is in the C(insufficient_data) status.
required: false
type: list
elements: str
ok_actions:
description:
- A list of the names of action(s) to take when the alarm is in the 'ok' status, denoted as Amazon Resource Name(s)
- A list of the names of action(s) to take when the alarm is in the C(ok) status, denoted as Amazon Resource Name(s).
required: false
type: list
elements: str
extends_documentation_fragment:
- aws
- ec2

@ -2,6 +2,9 @@
# Copyright (c) 2017 Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
'supported_by': 'community'}
@ -23,12 +26,14 @@ options:
description:
- The name for the placement group.
required: true
type: str
state:
description:
- Create or delete placement group.
required: false
default: present
choices: [ 'present', 'absent' ]
type: str
strategy:
description:
- Placement group strategy. Cluster will cluster instances into a
@ -37,6 +42,7 @@ options:
required: false
default: cluster
choices: [ 'cluster', 'spread' ]
type: str
extends_documentation_fragment:
- aws
- ec2

@ -2,6 +2,9 @@
# Copyright (c) 2017 Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
'supported_by': 'community'}
@ -21,6 +24,8 @@ options:
description:
- A list of names to filter on. If a listed group does not exist, there
will be no corresponding entry in the result; no error will be raised.
type: list
elements: str
required: false
default: []
extends_documentation_fragment:

@ -15,41 +15,49 @@ DOCUMENTATION = """
module: ec2_scaling_policy
short_description: Create or delete AWS scaling policies for Autoscaling groups
description:
- Can create or delete scaling policies for autoscaling groups
- Referenced autoscaling groups must already exist
- Can create or delete scaling policies for autoscaling groups.
- Referenced autoscaling groups must already exist.
version_added: "1.6"
author: "Zacharie Eakin (@Zeekin)"
options:
state:
description:
- register or deregister the policy
- Register or deregister the policy.
required: true
default: present
choices: ['present', 'absent']
type: str
name:
description:
- Unique name for the scaling policy
- Unique name for the scaling policy.
required: true
type: str
asg_name:
description:
- Name of the associated autoscaling group
- Name of the associated autoscaling group.
required: true
type: str
adjustment_type:
description:
- The type of change in capacity of the autoscaling group
- The type of change in capacity of the autoscaling group.
required: false
choices: ['ChangeInCapacity','ExactCapacity','PercentChangeInCapacity']
type: str
scaling_adjustment:
description:
- The amount by which the autoscaling group is adjusted by the policy
- The amount by which the autoscaling group is adjusted by the policy.
required: false
type: int
min_adjustment_step:
description:
- Minimum amount of adjustment when policy is triggered
- Minimum amount of adjustment when policy is triggered.
required: false
type: int
cooldown:
description:
- The minimum period of time between which autoscaling actions can take place
- The minimum period of time (in seconds) between which autoscaling actions can take place.
required: false
type: int
extends_documentation_fragment:
- aws
- ec2

@ -14,64 +14,73 @@ ANSIBLE_METADATA = {'metadata_version': '1.1',
DOCUMENTATION = '''
---
module: ec2_snapshot
short_description: creates a snapshot from an existing volume
short_description: Creates a snapshot from an existing volume
description:
- creates an EC2 snapshot from an existing EBS volume
- Creates an EC2 snapshot from an existing EBS volume.
version_added: "1.5"
options:
volume_id:
description:
- volume from which to take the snapshot
- Volume from which to take the snapshot.
required: false
type: str
description:
description:
- description to be applied to the snapshot
- Description to be applied to the snapshot.
required: false
type: str
instance_id:
description:
- instance that has the required volume to snapshot mounted
- Instance that has the required volume to snapshot mounted.
required: false
type: str
device_name:
description:
- device name of a mounted volume to be snapshotted
- Device name of a mounted volume to be snapshotted.
required: false
type: str
snapshot_tags:
description:
- a hash/dictionary of tags to add to the snapshot
- A dictionary of tags to add to the snapshot.
type: dict
required: false
version_added: "1.6"
wait:
description:
- wait for the snapshot to be ready
- Wait for the snapshot to be ready.
type: bool
required: false
default: yes
version_added: "1.5.1"
wait_timeout:
description:
- how long before wait gives up, in seconds
- specify 0 to wait forever
- How long before wait gives up, in seconds.
- Specify 0 to wait forever.
required: false
default: 0
version_added: "1.5.1"
type: int
state:
description:
- whether to add or create a snapshot
- Whether to add or create a snapshot.
required: false
default: present
choices: ['absent', 'present']
version_added: "1.9"
type: str
snapshot_id:
description:
- snapshot id to remove
- Snapshot id to remove.
required: false
version_added: "1.9"
type: str
last_snapshot_min_age:
description:
- If the volume's most recent snapshot has started less than `last_snapshot_min_age' minutes ago, a new snapshot will not be created.
required: false
default: 0
version_added: "2.0"
type: int
author: "Will Thames (@willthames)"
extends_documentation_fragment:

@ -3,6 +3,9 @@
# Copyright: (c) 2017, Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
'status': ['preview'],
@ -13,7 +16,7 @@ ANSIBLE_METADATA = {
DOCUMENTATION = '''
---
module: ec2_snapshot_copy
short_description: copies an EC2 snapshot and returns the new Snapshot ID.
short_description: Copies an EC2 snapshot and returns the new Snapshot ID.
description:
- Copies an EC2 Snapshot from a source region to a destination region.
version_added: "2.4"
@ -22,13 +25,16 @@ options:
description:
- The source region the Snapshot should be copied from.
required: true
type: str
source_snapshot_id:
description:
- The ID of the Snapshot in source region that should be copied.
required: true
type: str
description:
description:
- An optional human-readable string describing purpose of the new Snapshot.
type: str
encrypted:
description:
- Whether or not the destination Snapshot should be encrypted.
@ -36,7 +42,8 @@ options:
default: 'no'
kms_key_id:
description:
- KMS key id used to encrypt snapshot. If not specified, defaults to EBS Customer Master Key (CMK) for that account.
- KMS key id used to encrypt snapshot. If not specified, AWS defaults to C(alias/aws/ebs).
type: str
wait:
description:
- Wait for the copied Snapshot to be in 'Available' state before returning.
@ -47,9 +54,11 @@ options:
description:
- How long before wait gives up, in seconds.
default: 600
type: int
tags:
description:
- A hash/dictionary of tags to add to the new Snapshot; '{"key":"value"}' and '{"key":"value","key":"value"}'
type: dict
author: Deepak Kothandan (@Deepakkothandan) <deepak.kdy@gmail.com>
extends_documentation_fragment:
- aws

@ -16,7 +16,7 @@ DOCUMENTATION = '''
module: ec2_snapshot_info
short_description: Gather information about ec2 volume snapshots in AWS
description:
- Gather information about ec2 volume snapshots in AWS
- Gather information about ec2 volume snapshots in AWS.
- This module was called C(ec2_snapshot_facts) before Ansible 2.9. The usage did not change.
version_added: "2.1"
requirements: [ boto3 ]
@ -27,24 +27,31 @@ options:
- If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned.
required: false
default: []
type: list
elements: str
owner_ids:
description:
- If you specify one or more snapshot owners, only snapshots from the specified owners and for which you have \
access are returned.
required: false
default: []
type: list
elements: str
restorable_by_user_ids:
description:
- If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are \
returned.
required: false
default: []
type: list
elements: str
filters:
description:
- A dict of filters to apply. Each dict item consists of a filter key and a filter value. See \
U(https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html) for possible filters. Filter \
names and values are case sensitive.
required: false
type: dict
default: {}
notes:
- By default, the module will return all snapshots, including public ones. To limit results to snapshots owned by \

@ -14,7 +14,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1',
DOCUMENTATION = '''
---
module: ec2_tag
short_description: create and remove tags on ec2 resources.
short_description: create and remove tags on ec2 resources
description:
- Creates, removes and lists tags for any EC2 resource. The resource is referenced by its resource id (e.g. an instance being i-XXXXXXX).
It is designed to be used with complex args (tags), see the examples.
@ -25,20 +25,23 @@ options:
description:
- The EC2 resource id.
required: true
type: str
state:
description:
- Whether the tags should be present or absent on the resource. Use list to interrogate the tags of an instance.
default: present
choices: ['present', 'absent', 'list']
type: str
tags:
description:
- A dictionary of tags to add or remove from the resource.
- If the value provided for a tag is null and C(state) is I(absent), the tag will be removed regardless of its current value.
- If the value provided for a tag is null and I(state=absent), the tag will be removed regardless of its current value.
required: true
type: dict
purge_tags:
description:
- Whether unspecified tags should be removed from the resource.
- "Note that when combined with C(state: absent), specified tags with non-matching values are not purged."
- Note that when combined with I(state=absent), specified tags with non-matching values are not purged.
type: bool
default: no
version_added: '2.7'

@ -13,32 +13,33 @@ ANSIBLE_METADATA = {'metadata_version': '1.1',
DOCUMENTATION = '''
module: ec2_transit_gateway
short_description: Create and delete AWS Transit Gateways.
short_description: Create and delete AWS Transit Gateways
description:
- Creates AWS Transit Gateways
- Deletes AWS Transit Gateways
- Updates tags on existing transit gateways
- Creates AWS Transit Gateways.
- Deletes AWS Transit Gateways.
- Updates tags on existing transit gateways.
version_added: "2.8"
requirements: [ 'botocore', 'boto3' ]
options:
asn:
description:
- A private Autonomous System Number (ASN) for the Amazon side of a BGP session.
The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.
- The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.
type: int
auto_associate:
description:
- Enable or disable automatic association with the default association route table.
default: yes
default: true
type: bool
auto_attach:
description:
- Enable or disable automatic acceptance of attachment requests.
default: no
default: false
type: bool
auto_propagate:
description:
- Enable or disable automatic propagation of routes to the default propagation route table.
default: yes
default: true
type: bool
description:
description:
@ -47,22 +48,24 @@ options:
dns_support:
description:
- Whether to enable AWS DNS support.
default: yes
default: true
type: bool
purge_tags:
description:
- Whether to purge existing tags not included with tags argument.
default: yes
default: true
type: bool
state:
description:
- present to ensure resource is created.
- absent to remove resource.
- C(present) to ensure resource is created.
- C(absent) to remove resource.
default: present
choices: [ "present", "absent"]
type: str
tags:
description:
- A dictionary of resource tags
type: dict
transit_gateway_id:
description:
- The ID of the transit gateway.
@ -70,16 +73,18 @@ options:
vpn_ecmp_support:
description:
- Enable or disable Equal Cost Multipath Protocol support.
default: yes
default: true
type: bool
wait:
description:
- Whether to wait for status
default: yes
default: true
type: bool
wait_timeout:
description:
- number of seconds to wait for status
default: 300
type: int
author: "Bob Boldin (@BobBoldin)"
extends_documentation_fragment:

@ -14,82 +14,95 @@ ANSIBLE_METADATA = {'metadata_version': '1.1',
DOCUMENTATION = '''
---
module: ec2_vol
short_description: create and attach a volume, return volume id and device map
short_description: Create and attach a volume, return volume id and device map
description:
- creates an EBS volume and optionally attaches it to an instance.
If both an instance ID and a device name is given and the instance has a device at the device name, then no volume is created and no attachment is made.
This module has a dependency on python-boto.
- Creates an EBS volume and optionally attaches it to an instance.
- If both I(instance) and I(name) are given and the instance has a device at the device name, then no volume is created and no attachment is made.
- This module has a dependency on python-boto.
version_added: "1.1"
options:
instance:
description:
- instance ID if you wish to attach the volume. Since 1.9 you can set to None to detach.
- Instance ID if you wish to attach the volume. Since 1.9 you can set to None to detach.
type: str
name:
description:
- volume Name tag if you wish to attach an existing volume (requires instance)
- Volume Name tag if you wish to attach an existing volume (requires instance)
version_added: "1.6"
type: str
id:
description:
- volume id if you wish to attach an existing volume (requires instance) or remove an existing volume
- Volume id if you wish to attach an existing volume (requires instance) or remove an existing volume
version_added: "1.6"
type: str
volume_size:
description:
- size of volume (in GiB) to create.
- Size of volume (in GiB) to create.
type: int
volume_type:
description:
- Type of EBS volume; standard (magnetic), gp2 (SSD), io1 (Provisioned IOPS), st1 (Throughput Optimized HDD), sc1 (Cold HDD).
"Standard" is the old EBS default and continues to remain the Ansible default for backwards compatibility.
default: standard
version_added: "1.9"
choices: ['standard', 'gp2', 'io1', 'st1', 'sc1']
type: str
iops:
description:
- the provisioned IOPs you want to associate with this volume (integer).
default: 100
- The provisioned IOPs you want to associate with this volume (integer).
- By default AWS will set this to 100.
version_added: "1.3"
type: int
encrypted:
description:
- Enable encryption at rest for this volume.
default: 'no'
default: false
type: bool
version_added: "1.8"
kms_key_id:
description:
- Specify the id of the KMS key to use.
version_added: "2.3"
type: str
device_name:
description:
- device id to override device mapping. Assumes /dev/sdf for Linux/UNIX and /dev/xvdf for Windows.
- Device id to override device mapping. Assumes /dev/sdf for Linux/UNIX and /dev/xvdf for Windows.
type: str
delete_on_termination:
description:
- When set to "yes", the volume will be deleted upon instance termination.
- When set to C(true), the volume will be deleted upon instance termination.
type: bool
default: 'no'
default: false
version_added: "2.1"
zone:
description:
- zone in which to create the volume, if unset uses the zone the instance is in (if set)
aliases: ['aws_zone', 'ec2_zone']
- Zone in which to create the volume, if unset uses the zone the instance is in (if set).
aliases: ['availability_zone', 'aws_zone', 'ec2_zone']
type: str
snapshot:
description:
- snapshot ID on which to base the volume
- Snapshot ID on which to base the volume.
version_added: "1.5"
type: str
validate_certs:
description:
- When set to "no", SSL certificates will not be validated for boto versions >= 2.6.0.
type: bool
default: 'yes'
default: true
version_added: "1.5"
state:
description:
- whether to ensure the volume is present or absent, or to list existing volumes (The C(list) option was added in version 1.8).
- Whether to ensure the volume is present or absent, or to list existing volumes (The C(list) option was added in version 1.8).
default: present
choices: ['absent', 'present', 'list']
version_added: "1.6"
type: str
tags:
description:
- tag:value pairs to add to the volume after creation
- tag:value pairs to add to the volume after creation.
default: {}
version_added: "2.3"
type: dict
author: "Lester Wade (@lwade)"
extends_documentation_fragment:
- aws
@ -491,9 +504,9 @@ def main():
instance=dict(),
id=dict(),
name=dict(),
volume_size=dict(),
volume_size=dict(type='int'),
volume_type=dict(choices=['standard', 'gp2', 'io1', 'st1', 'sc1'], default='standard'),
iops=dict(),
iops=dict(type='int'),
encrypted=dict(type='bool', default=False),
kms_key_id=dict(),
device_name=dict(),

@ -16,16 +16,17 @@ DOCUMENTATION = '''
module: ec2_vol_info
short_description: Gather information about ec2 volumes in AWS
description:
- Gather information about ec2 volumes in AWS
- Gather information about ec2 volumes in AWS.
- This module was called C(ec2_vol_facts) before Ansible 2.9. The usage did not change.
version_added: "2.1"
requirements: [ boto3 ]
author: "Rob White (@wimnat)"
options:
filters:
type: dict
description:
- A dict of filters to apply. Each dict item consists of a filter key and a filter value.
See U(https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVolumes.html) for possible filters.
- See U(https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVolumes.html) for possible filters.
extends_documentation_fragment:
- aws
- ec2

@ -14,10 +14,10 @@ ANSIBLE_METADATA = {'metadata_version': '1.1',
DOCUMENTATION = '''
---
module: ec2_win_password
short_description: gets the default administrator password for ec2 windows instances
short_description: Gets the default administrator password for ec2 windows instances
description:
- Gets the default administrator password from any EC2 Windows instance. The instance is referenced by its id (e.g. C(i-XXXXXXX)). This module
has a dependency on python-boto.
- Gets the default administrator password from any EC2 Windows instance. The instance is referenced by its id (e.g. C(i-XXXXXXX)).
- This module has a dependency on python-boto.
version_added: "2.0"
author: "Rick Mendes (@rickmendes)"
options:
@ -25,31 +25,38 @@ options:
description:
- The instance id to get the password data from.
required: true
type: str
key_file:
description:
- Path to the file containing the key pair used on the instance, conflicts with key_data.
- Path to the file containing the key pair used on the instance.
- Conflicts with I(key_data).
required: false
type: path
key_data:
version_added: "2.8"
description:
- Variable that references the private key (usually stored in vault), conflicts with key_file.
- The private key (usually stored in vault).
- Conflicts with I(key_file),
required: false
type: str
key_passphrase:
version_added: "2.0"
description:
- The passphrase for the instance key pair. The key must use DES or 3DES encryption for this module to decrypt it. You can use openssl to
convert your password protected keys if they do not use DES or 3DES. ex) C(openssl rsa -in current_key -out new_key -des3).
type: str
wait:
version_added: "2.0"
description:
- Whether or not to wait for the password to be available before returning.
type: bool
default: 'no'
default: false
wait_timeout:
version_added: "2.0"
description:
- Number of seconds to wait before giving up.
default: 120
type: int
extends_documentation_fragment:
- aws

@ -489,113 +489,6 @@ lib/ansible/modules/cloud/alicloud/ali_instance.py validate-modules:parameter-ty
lib/ansible/modules/cloud/alicloud/ali_instance.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/alicloud/ali_instance_info.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/alicloud/ali_instance_info.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2.py validate-modules:undocumented-parameter
lib/ansible/modules/cloud/amazon/ec2.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_ami.py validate-modules:doc-default-does-not-match-spec
lib/ansible/modules/cloud/amazon/ec2_ami.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_ami.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_ami_copy.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_ami_copy.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_ami_copy.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_ami_copy.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_ami_info.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_ami_info.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_ami_info.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_ami_info.py validate-modules:return-syntax-error
lib/ansible/modules/cloud/amazon/ec2_asg.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_asg.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_asg.py validate-modules:doc-default-does-not-match-spec
lib/ansible/modules/cloud/amazon/ec2_asg.py validate-modules:doc-choices-do-not-match-spec
lib/ansible/modules/cloud/amazon/ec2_asg.py validate-modules:doc-default-incompatible-type
lib/ansible/modules/cloud/amazon/ec2_asg.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_asg.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_asg_info.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_asg_lifecycle_hook.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_asg_lifecycle_hook.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_asg_lifecycle_hook.py validate-modules:doc-default-incompatible-type
lib/ansible/modules/cloud/amazon/ec2_asg_lifecycle_hook.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_asg_lifecycle_hook.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_customer_gateway.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_customer_gateway.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_customer_gateway.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_customer_gateway.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_customer_gateway.py validate-modules:return-syntax-error
lib/ansible/modules/cloud/amazon/ec2_customer_gateway_info.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_customer_gateway_info.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_customer_gateway_info.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_eip.py validate-modules:undocumented-parameter
lib/ansible/modules/cloud/amazon/ec2_eip.py validate-modules:doc-default-does-not-match-spec
lib/ansible/modules/cloud/amazon/ec2_eip.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_eip.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_eip_info.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_eip_info.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_eip_info.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_eni.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_eni.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_eni.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_eni.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_eni_info.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_eni_info.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_eni_info.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_group.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_group.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_group.py validate-modules:undocumented-parameter
lib/ansible/modules/cloud/amazon/ec2_group.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_group.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_group_info.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_key.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_key.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_launch_template.py validate-modules:nonexistent-parameter-documented
lib/ansible/modules/cloud/amazon/ec2_launch_template.py validate-modules:doc-choices-do-not-match-spec
lib/ansible/modules/cloud/amazon/ec2_launch_template.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_launch_template.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_lc.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_lc.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_lc.py validate-modules:undocumented-parameter
lib/ansible/modules/cloud/amazon/ec2_lc.py validate-modules:doc-default-does-not-match-spec
lib/ansible/modules/cloud/amazon/ec2_lc.py validate-modules:doc-choices-do-not-match-spec
lib/ansible/modules/cloud/amazon/ec2_lc.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_lc.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_lc.py validate-modules:return-syntax-error
lib/ansible/modules/cloud/amazon/ec2_lc_find.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_lc_find.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_lc_info.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_lc_info.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_metadata_facts.py validate-modules:return-syntax-error
lib/ansible/modules/cloud/amazon/ec2_metric_alarm.py validate-modules:doc-default-does-not-match-spec
lib/ansible/modules/cloud/amazon/ec2_metric_alarm.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_metric_alarm.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_placement_group.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_placement_group.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_placement_group.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_placement_group.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_placement_group_info.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_placement_group_info.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_placement_group_info.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_scaling_policy.py validate-modules:doc-default-does-not-match-spec
lib/ansible/modules/cloud/amazon/ec2_scaling_policy.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_scaling_policy.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_snapshot.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_snapshot.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_snapshot_copy.py future-import-boilerplate
lib/ansible/modules/cloud/amazon/ec2_snapshot_copy.py metaclass-boilerplate
lib/ansible/modules/cloud/amazon/ec2_snapshot_copy.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_snapshot_copy.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_snapshot_info.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_tag.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_tag.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_transit_gateway.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_transit_gateway.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_vol.py validate-modules:undocumented-parameter
lib/ansible/modules/cloud/amazon/ec2_vol.py validate-modules:doc-default-does-not-match-spec
lib/ansible/modules/cloud/amazon/ec2_vol.py validate-modules:doc-choices-do-not-match-spec
lib/ansible/modules/cloud/amazon/ec2_vol.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_vol.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/amazon/ec2_vol_info.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_win_password.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/amazon/ec2_win_password.py validate-modules:doc-missing-type
lib/ansible/modules/cloud/atomic/atomic_container.py validate-modules:no-default-for-required-parameter
lib/ansible/modules/cloud/atomic/atomic_container.py validate-modules:parameter-type-not-in-doc
lib/ansible/modules/cloud/atomic/atomic_container.py validate-modules:doc-missing-type

Loading…
Cancel
Save