|
|
|
@ -29,124 +29,149 @@ version_added: "0.9"
|
|
|
|
|
options:
|
|
|
|
|
key_name:
|
|
|
|
|
description:
|
|
|
|
|
- key pair to use on the instance
|
|
|
|
|
- Key pair to use on the instance.
|
|
|
|
|
aliases: ['keypair']
|
|
|
|
|
type: str
|
|
|
|
|
id:
|
|
|
|
|
version_added: "1.1"
|
|
|
|
|
description:
|
|
|
|
|
- identifier for this instance or set of instances, so that the module will be idempotent with respect to EC2 instances.
|
|
|
|
|
This identifier is valid for at least 24 hours after the termination of the instance, and should not be reused for another call later on.
|
|
|
|
|
For details, see the description of client token at U(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html).
|
|
|
|
|
- Identifier for this instance or set of instances, so that the module will be idempotent with respect to EC2 instances.
|
|
|
|
|
- This identifier is valid for at least 24 hours after the termination of the instance, and should not be reused for another call later on.
|
|
|
|
|
- For details, see the description of client token at U(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html).
|
|
|
|
|
type: str
|
|
|
|
|
group:
|
|
|
|
|
description:
|
|
|
|
|
- security group (or list of groups) to use with the instance.
|
|
|
|
|
- Security group (or list of groups) to use with the instance.
|
|
|
|
|
aliases: [ 'groups' ]
|
|
|
|
|
type: list
|
|
|
|
|
group_id:
|
|
|
|
|
version_added: "1.1"
|
|
|
|
|
description:
|
|
|
|
|
- security group id (or list of ids) to use with the instance.
|
|
|
|
|
- Security group id (or list of ids) to use with the instance.
|
|
|
|
|
type: list
|
|
|
|
|
region:
|
|
|
|
|
version_added: "1.2"
|
|
|
|
|
description:
|
|
|
|
|
- The AWS region to use. Must be specified if ec2_url is not used.
|
|
|
|
|
If not specified then the value of the AWS_REGION or EC2_REGION environment variable, if any, is used.
|
|
|
|
|
See U(https://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region).
|
|
|
|
|
- If not specified then the value of the C(AWS_REGION) or C(EC2_REGION) environment variable, if any, is used.
|
|
|
|
|
- See U(https://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region).
|
|
|
|
|
aliases: [ 'aws_region', 'ec2_region' ]
|
|
|
|
|
type: str
|
|
|
|
|
zone:
|
|
|
|
|
version_added: "1.2"
|
|
|
|
|
description:
|
|
|
|
|
- AWS availability zone in which to launch the instance.
|
|
|
|
|
aliases: [ 'aws_zone', 'ec2_zone' ]
|
|
|
|
|
type: str
|
|
|
|
|
instance_type:
|
|
|
|
|
description:
|
|
|
|
|
- instance type to use for the instance, see U(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html).
|
|
|
|
|
- Instance type to use for the instance, see U(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html).
|
|
|
|
|
required: true
|
|
|
|
|
type: str
|
|
|
|
|
tenancy:
|
|
|
|
|
version_added: "1.9"
|
|
|
|
|
description:
|
|
|
|
|
- An instance with a tenancy of "dedicated" runs on single-tenant hardware and can only be launched into a VPC.
|
|
|
|
|
Note that to use dedicated tenancy you MUST specify a vpc_subnet_id as well. Dedicated tenancy is not available for EC2 "micro" instances.
|
|
|
|
|
- Note that to use dedicated tenancy you MUST specify a I(vpc_subnet_id) as well.
|
|
|
|
|
- Dedicated tenancy is not available for EC2 "micro" instances.
|
|
|
|
|
default: default
|
|
|
|
|
choices: [ "default", "dedicated" ]
|
|
|
|
|
type: str
|
|
|
|
|
spot_price:
|
|
|
|
|
version_added: "1.5"
|
|
|
|
|
description:
|
|
|
|
|
- Maximum spot price to bid, If not set a regular on-demand instance is requested. A spot request is made with this maximum bid.
|
|
|
|
|
When it is filled, the instance is started.
|
|
|
|
|
- Maximum spot price to bid. If not set, a regular on-demand instance is requested.
|
|
|
|
|
- A spot request is made with this maximum bid. When it is filled, the instance is started.
|
|
|
|
|
type: str
|
|
|
|
|
spot_type:
|
|
|
|
|
version_added: "2.0"
|
|
|
|
|
description:
|
|
|
|
|
- Type of spot request; one of "one-time" or "persistent". Defaults to "one-time" if not supplied.
|
|
|
|
|
default: "one-time"
|
|
|
|
|
choices: [ "one-time", "persistent" ]
|
|
|
|
|
type: str
|
|
|
|
|
image:
|
|
|
|
|
description:
|
|
|
|
|
- I(ami) ID to use for the instance.
|
|
|
|
|
required: true
|
|
|
|
|
type: str
|
|
|
|
|
kernel:
|
|
|
|
|
description:
|
|
|
|
|
- kernel I(eki) to use for the instance.
|
|
|
|
|
- Kernel I(eki) to use for the instance.
|
|
|
|
|
type: str
|
|
|
|
|
ramdisk:
|
|
|
|
|
description:
|
|
|
|
|
- ramdisk I(eri) to use for the instance.
|
|
|
|
|
- Ramdisk I(eri) to use for the instance.
|
|
|
|
|
type: str
|
|
|
|
|
wait:
|
|
|
|
|
description:
|
|
|
|
|
- wait for the instance to reach its desired state before returning. Does not wait for SSH, see 'wait_for_connection' example for details.
|
|
|
|
|
- Wait for the instance to reach its desired state before returning.
|
|
|
|
|
- Does not wait for SSH, see 'wait_for_connection' example for details.
|
|
|
|
|
type: bool
|
|
|
|
|
default: 'no'
|
|
|
|
|
wait_timeout:
|
|
|
|
|
description:
|
|
|
|
|
- how long before wait gives up, in seconds.
|
|
|
|
|
- How long before wait gives up, in seconds.
|
|
|
|
|
default: 300
|
|
|
|
|
type: int
|
|
|
|
|
spot_wait_timeout:
|
|
|
|
|
version_added: "1.5"
|
|
|
|
|
description:
|
|
|
|
|
- how long to wait for the spot instance request to be fulfilled.
|
|
|
|
|
- How long to wait for the spot instance request to be fulfilled.
|
|
|
|
|
default: 600
|
|
|
|
|
type: int
|
|
|
|
|
count:
|
|
|
|
|
description:
|
|
|
|
|
- number of instances to launch.
|
|
|
|
|
- Number of instances to launch.
|
|
|
|
|
default: 1
|
|
|
|
|
type: int
|
|
|
|
|
monitoring:
|
|
|
|
|
version_added: "1.1"
|
|
|
|
|
description:
|
|
|
|
|
- enable detailed monitoring (CloudWatch) for instance.
|
|
|
|
|
- Enable detailed monitoring (CloudWatch) for instance.
|
|
|
|
|
type: bool
|
|
|
|
|
default: 'no'
|
|
|
|
|
user_data:
|
|
|
|
|
version_added: "0.9"
|
|
|
|
|
description:
|
|
|
|
|
- opaque blob of data which is made available to the ec2 instance.
|
|
|
|
|
- Opaque blob of data which is made available to the EC2 instance.
|
|
|
|
|
type: str
|
|
|
|
|
instance_tags:
|
|
|
|
|
version_added: "1.0"
|
|
|
|
|
description:
|
|
|
|
|
- a hash/dictionary of tags to add to the new instance or for starting/stopping instance by tag; '{"key":"value"}' and '{"key":"value","key":"value"}'.
|
|
|
|
|
- A hash/dictionary of tags to add to the new instance or for starting/stopping instance by tag; '{"key":"value"}' and '{"key":"value","key":"value"}'.
|
|
|
|
|
type: dict
|
|
|
|
|
placement_group:
|
|
|
|
|
version_added: "1.3"
|
|
|
|
|
description:
|
|
|
|
|
- placement group for the instance when using EC2 Clustered Compute.
|
|
|
|
|
- Placement group for the instance when using EC2 Clustered Compute.
|
|
|
|
|
type: str
|
|
|
|
|
vpc_subnet_id:
|
|
|
|
|
version_added: "1.1"
|
|
|
|
|
description:
|
|
|
|
|
- the subnet ID in which to launch the instance (VPC).
|
|
|
|
|
type: str
|
|
|
|
|
assign_public_ip:
|
|
|
|
|
version_added: "1.5"
|
|
|
|
|
description:
|
|
|
|
|
- when provisioning within vpc, assign a public IP address. Boto library must be 2.13.0+.
|
|
|
|
|
- When provisioning within vpc, assign a public IP address. Boto library must be 2.13.0+.
|
|
|
|
|
type: bool
|
|
|
|
|
private_ip:
|
|
|
|
|
version_added: "1.2"
|
|
|
|
|
description:
|
|
|
|
|
- the private ip address to assign the instance (from the vpc subnet).
|
|
|
|
|
- The private ip address to assign the instance (from the vpc subnet).
|
|
|
|
|
type: str
|
|
|
|
|
instance_profile_name:
|
|
|
|
|
version_added: "1.3"
|
|
|
|
|
description:
|
|
|
|
|
- Name of the IAM instance profile (i.e. what the EC2 console refers to as an "IAM Role") to use. Boto library must be 2.5.0+.
|
|
|
|
|
type: str
|
|
|
|
|
instance_ids:
|
|
|
|
|
version_added: "1.3"
|
|
|
|
|
description:
|
|
|
|
|
- "list of instance ids, currently used for states: absent, running, stopped"
|
|
|
|
|
aliases: ['instance_id']
|
|
|
|
|
type: list
|
|
|
|
|
source_dest_check:
|
|
|
|
|
version_added: "1.6"
|
|
|
|
|
description:
|
|
|
|
@ -166,6 +191,7 @@ options:
|
|
|
|
|
images (which require termination on shutdown).
|
|
|
|
|
default: 'stop'
|
|
|
|
|
choices: [ "stop", "terminate" ]
|
|
|
|
|
type: str
|
|
|
|
|
state:
|
|
|
|
|
version_added: "1.3"
|
|
|
|
|
description:
|
|
|
|
@ -174,6 +200,7 @@ options:
|
|
|
|
|
required: false
|
|
|
|
|
default: 'present'
|
|
|
|
|
choices: ['present', 'absent', 'running', 'restarted', 'stopped']
|
|
|
|
|
type: str
|
|
|
|
|
volumes:
|
|
|
|
|
version_added: "1.5"
|
|
|
|
|
description:
|
|
|
|
@ -181,6 +208,7 @@ options:
|
|
|
|
|
are - device_name (str; required), delete_on_termination (bool; False), device_type (deprecated), ephemeral (str),
|
|
|
|
|
encrypted (bool; False), snapshot (str), volume_type (str), volume_size (int, GiB), iops (int) - device_type
|
|
|
|
|
is deprecated use volume_type, iops must be set when volume_type='io1', ephemeral and snapshot are mutually exclusive.
|
|
|
|
|
type: list
|
|
|
|
|
ebs_optimized:
|
|
|
|
|
version_added: "1.6"
|
|
|
|
|
description:
|
|
|
|
@ -192,6 +220,7 @@ options:
|
|
|
|
|
description:
|
|
|
|
|
- An integer value which indicates how many instances that match the 'count_tag' parameter should be running.
|
|
|
|
|
Instances are either created or terminated based on this value.
|
|
|
|
|
type: int
|
|
|
|
|
count_tag:
|
|
|
|
|
version_added: "1.5"
|
|
|
|
|
description:
|
|
|
|
@ -205,11 +234,12 @@ options:
|
|
|
|
|
none of the assign_public_ip, private_ip, vpc_subnet_id, group, or group_id parameters may be used. (Those parameters are
|
|
|
|
|
for creating a new network interface at launch.)
|
|
|
|
|
aliases: ['network_interface']
|
|
|
|
|
type: list
|
|
|
|
|
spot_launch_group:
|
|
|
|
|
version_added: "2.1"
|
|
|
|
|
description:
|
|
|
|
|
- Launch group for spot request, see U(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-spot-instances-work.html#spot-launch-group).
|
|
|
|
|
|
|
|
|
|
type: str
|
|
|
|
|
author:
|
|
|
|
|
- "Tim Gerla (@tgerla)"
|
|
|
|
|
- "Lester Wade (@lwade)"
|
|
|
|
@ -1596,8 +1626,8 @@ def main():
|
|
|
|
|
monitoring=dict(type='bool', default=False),
|
|
|
|
|
ramdisk=dict(),
|
|
|
|
|
wait=dict(type='bool', default=False),
|
|
|
|
|
wait_timeout=dict(default=300),
|
|
|
|
|
spot_wait_timeout=dict(default=600),
|
|
|
|
|
wait_timeout=dict(type='int', default=300),
|
|
|
|
|
spot_wait_timeout=dict(type='int', default=600),
|
|
|
|
|
placement_group=dict(),
|
|
|
|
|
user_data=dict(),
|
|
|
|
|
instance_tags=dict(type='dict'),
|
|
|
|
|