Connection module for Amazon EC2
New in version 2015.8.0.
configuration: | This module accepts explicit EC2 credentials but can also utilize IAM roles assigned to the instance through Instance Profiles. Dynamic credentials are then automatically obtained from AWS API and no further configuration is necessary. More Information available here. |
---|
If IAM roles are not used you need to specify them either in a pillar or in the minion's config file:
ec2.keyid: GKTADJGHEIQSXMKKRBJ08H
ec2.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
A region may also be specified in the configuration:
ec2.region: us-east-1
If a region is not specified, the default is us-east-1.
It's also possible to specify key, keyid, and region via a profile, either as a passed in dict, or as a string to pull from pillars or minion config:
myprofile:
keyid: GKTADJGHEIQSXMKKRBJ08H
key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
region: us-east-1
depends: | boto |
---|
salt.modules.boto_ec2.
allocate_eip_address
(domain=None, region=None, key=None, keyid=None, profile=None)¶Allocate a new Elastic IP address and associate it with your account.
CLI Example:
salt-call boto_ec2.allocate_eip_address domain=vpc
New in version 2016.3.0.
salt.modules.boto_ec2.
assign_private_ip_addresses
(network_interface_name=None, network_interface_id=None, private_ip_addresses=None, secondary_private_ip_address_count=None, allow_reassignment=False, region=None, key=None, keyid=None, profile=None)¶Assigns one or more secondary private IP addresses to a network interface.
CLI Example:
salt myminion boto_ec2.assign_private_ip_addresses network_interface_name=my_eni private_ip_addresses=private_ip
salt myminion boto_ec2.assign_private_ip_addresses network_interface_name=my_eni secondary_private_ip_address_count=2
New in version 2017.7.0.
salt.modules.boto_ec2.
associate_eip_address
(instance_id=None, instance_name=None, public_ip=None, allocation_id=None, network_interface_id=None, network_interface_name=None, private_ip_address=None, allow_reassociation=False, region=None, key=None, keyid=None, profile=None)¶Associate an Elastic IP address with a currently running instance or a network interface. This requires exactly one of either 'public_ip' or 'allocation_id', depending on whether you’re associating a VPC address or a plain EC2 address.
CLI Example:
salt myminion boto_ec2.associate_eip_address instance_name=bubba.ho.tep allocation_id=eipalloc-ef382c8a
New in version 2016.3.0.
salt.modules.boto_ec2.
attach_network_interface
(device_index, name=None, network_interface_id=None, instance_name=None, instance_id=None, region=None, key=None, keyid=None, profile=None)¶Attach an Elastic Network Interface.
New in version 2016.3.0.
CLI Example:
salt myminion boto_ec2.attach_network_interface my_eni instance_name=salt-master device_index=0
salt.modules.boto_ec2.
create_image
(ami_name, instance_id=None, instance_name=None, tags=None, region=None, key=None, keyid=None, profile=None, description=None, no_reboot=False, dry_run=False, filters=None)¶Given instance properties that define exactly one instance, create AMI and return AMI-id.
CLI Examples:
salt myminion boto_ec2.create_image ami_name instance_name=myinstance
salt myminion boto_ec2.create_image another_ami_name tags='{"mytag": "value"}' description='this is my ami'
salt.modules.boto_ec2.
create_key
(key_name, save_path, region=None, key=None, keyid=None, profile=None)¶Creates a key and saves it to a given path. Returns the private key.
CLI Example:
salt myminion boto_ec2.create_key mykey /root/
salt.modules.boto_ec2.
create_network_interface
(name, subnet_id=None, subnet_name=None, private_ip_address=None, description=None, groups=None, region=None, key=None, keyid=None, profile=None)¶Create an Elastic Network Interface.
New in version 2016.3.0.
CLI Example:
salt myminion boto_ec2.create_network_interface my_eni subnet-12345 description=my_eni groups=['my_group']
Create new metadata tags for the specified resource ids.
New in version 2016.11.0.
CLI Example:
salt-call boto_ec2.create_tags vol-12345678 '{"Name": "myVolume01"}'
salt.modules.boto_ec2.
delete_key
(key_name, region=None, key=None, keyid=None, profile=None)¶Deletes a key. Always returns True
CLI Example:
salt myminion boto_ec2.delete_key mykey
salt.modules.boto_ec2.
delete_network_interface
(name=None, network_interface_id=None, region=None, key=None, keyid=None, profile=None)¶Create an Elastic Network Interface.
New in version 2016.3.0.
CLI Example:
salt myminion boto_ec2.create_network_interface my_eni subnet-12345 description=my_eni groups=['my_group']
Delete metadata tags for the specified resource ids.
New in version 2016.11.0.
CLI Example:
salt-call boto_ec2.delete_tags vol-12345678 '{"Name": "myVolume01"}'
salt-call boto_ec2.delete_tags vol-12345678 '["Name","MountPoint"]'
salt.modules.boto_ec2.
delete_volume
(volume_id, instance_id=None, device=None, force=False, region=None, key=None, keyid=None, profile=None)¶Detach an EBS volume from an EC2 instance.
New in version 2016.11.0.
CLI Example:
salt-call boto_ec2.delete_volume vol-12345678
salt.modules.boto_ec2.
detach_network_interface
(name=None, network_interface_id=None, attachment_id=None, force=False, region=None, key=None, keyid=None, profile=None)¶Detach an Elastic Network Interface.
New in version 2016.3.0.
CLI Example:
salt myminion boto_ec2.detach_network_interface my_eni
salt.modules.boto_ec2.
detach_volume
(volume_id, instance_id=None, device=None, force=False, region=None, key=None, keyid=None, profile=None)¶Detach an EBS volume from an EC2 instance.
New in version 2016.11.0.
CLI Example:
salt-call boto_ec2.detach_volume vol-12345678 i-87654321
salt.modules.boto_ec2.
disassociate_eip_address
(public_ip=None, association_id=None, region=None, key=None, keyid=None, profile=None)¶Disassociate an Elastic IP address from a currently running instance. This requires exactly one of either 'association_id' or 'public_ip', depending on whether you’re dealing with a VPC or EC2 Classic address.
CLI Example:
salt myminion boto_ec2.disassociate_eip_address association_id=eipassoc-e3ba2d16
New in version 2016.3.0.
salt.modules.boto_ec2.
exists
(instance_id=None, name=None, tags=None, region=None, key=None, keyid=None, profile=None, in_states=None, filters=None)¶Given a instance id, check to see if the given instance id exists.
Returns True if the given an instance with the given id, name, or tags exists; otherwise, False is returned.
CLI Example:
salt myminion boto_ec2.exists myinstance
salt.modules.boto_ec2.
find_images
(ami_name=None, executable_by=None, owners=None, image_ids=None, tags=None, region=None, key=None, keyid=None, profile=None, return_objs=False)¶Given image properties, find and return matching AMI ids
CLI Examples:
salt myminion boto_ec2.find_images tags='{"mytag": "value"}'
salt.modules.boto_ec2.
find_instances
(instance_id=None, name=None, tags=None, region=None, key=None, keyid=None, profile=None, return_objs=False, in_states=None, filters=None)¶Given instance properties, find and return matching instance ids
CLI Examples:
salt myminion boto_ec2.find_instances # Lists all instances
salt myminion boto_ec2.find_instances name=myinstance
salt myminion boto_ec2.find_instances tags='{"mytag": "value"}'
salt myminion boto_ec2.find_instances filters='{"vpc-id": "vpc-12345678"}'
salt.modules.boto_ec2.
get_all_eip_addresses
(addresses=None, allocation_ids=None, region=None, key=None, keyid=None, profile=None)¶Get public addresses of some, or all EIPs associated with the current account.
CLI Example:
salt-call boto_ec2.get_all_eip_addresses
New in version 2016.3.0.
salt.modules.boto_ec2.
get_all_volumes
(volume_ids=None, filters=None, return_objs=False, region=None, key=None, keyid=None, profile=None)¶Get a list of all EBS volumes, optionally filtered by provided 'filters' param
New in version 2016.11.0.
gp2
for General
Purpose SSD, io1
for Provisioned IOPS SSD, st1
for Throughput
Optimized HDD, sc1
for Cold HDD, or standard
for Magnetic volumes.True
, boto.ec2.volume.Volume objects.CLI Example:
salt-call boto_ec2.get_all_volumes filters='{"tag:Name": "myVolume01"}'
salt.modules.boto_ec2.
get_attribute
(attribute, instance_name=None, instance_id=None, region=None, key=None, keyid=None, profile=None, filters=None)¶Get an EC2 instance attribute.
CLI Example:
salt myminion boto_ec2.get_attribute sourceDestCheck instance_name=my_instance
salt.modules.boto_ec2.
get_eip_address_info
(addresses=None, allocation_ids=None, region=None, key=None, keyid=None, profile=None)¶Get 'interesting' info about some, or all EIPs associated with the current account.
CLI Example:
salt-call boto_ec2.get_eip_address_info addresses=52.4.2.15
New in version 2016.3.0.
salt.modules.boto_ec2.
get_id
(name=None, tags=None, region=None, key=None, keyid=None, profile=None, in_states=None, filters=None)¶Given instance properties, return the instance id if it exists.
CLI Example:
salt myminion boto_ec2.get_id myinstance
salt.modules.boto_ec2.
get_key
(key_name, region=None, key=None, keyid=None, profile=None)¶Check to see if a key exists. Returns fingerprint and name if it does and False if it doesn't CLI Example:
salt myminion boto_ec2.get_key mykey
salt.modules.boto_ec2.
get_keys
(keynames=None, filters=None, region=None, key=None, keyid=None, profile=None)¶Gets all keys or filters them by name and returns a list. keynames (list):: A list of the names of keypairs to retrieve. If not provided, all key pairs will be returned. filters (dict) :: Optional filters that can be used to limit the results returned. Filters are provided in the form of a dictionary consisting of filter names as the key and filter values as the value. The set of allowable filter names/values is dependent on the request being performed. Check the EC2 API guide for details.
CLI Example:
salt myminion boto_ec2.get_keys
salt.modules.boto_ec2.
get_network_interface
(name=None, network_interface_id=None, region=None, key=None, keyid=None, profile=None)¶Get an Elastic Network Interface.
New in version 2016.3.0.
CLI Example:
salt myminion boto_ec2.get_network_interface name=my_eni
salt.modules.boto_ec2.
get_network_interface_id
(name, region=None, key=None, keyid=None, profile=None)¶Get an Elastic Network Interface id from its name tag.
New in version 2016.3.0.
CLI Example:
salt myminion boto_ec2.get_network_interface_id name=my_eni
salt.modules.boto_ec2.
get_unassociated_eip_address
(domain='standard', region=None, key=None, keyid=None, profile=None)¶Return the first unassociated EIP
CLI Example:
salt-call boto_ec2.get_unassociated_eip_address
New in version 2016.3.0.
salt.modules.boto_ec2.
get_zones
(region=None, key=None, keyid=None, profile=None)¶Get a list of AZs for the configured region.
CLI Example:
salt myminion boto_ec2.get_zones
salt.modules.boto_ec2.
import_key
(key_name, public_key_material, region=None, key=None, keyid=None, profile=None)¶Imports the public key from an RSA key pair that you created with a third-party tool. Supported formats: - OpenSSH public key format (e.g., the format in ~/.ssh/authorized_keys) - Base64 encoded DER format - SSH public key file format as specified in RFC4716 - DSA keys are not supported. Make sure your key generator is set up to create RSA keys. Supported lengths: 1024, 2048, and 4096.
CLI Example:
salt myminion boto_ec2.import mykey publickey
salt.modules.boto_ec2.
modify_network_interface_attribute
(name=None, network_interface_id=None, attr=None, value=None, region=None, key=None, keyid=None, profile=None)¶Modify an attribute of an Elastic Network Interface.
New in version 2016.3.0.
CLI Example:
salt myminion boto_ec2.modify_network_interface_attribute my_eni attr=description value='example description'
salt.modules.boto_ec2.
release_eip_address
(public_ip=None, allocation_id=None, region=None, key=None, keyid=None, profile=None)¶Free an Elastic IP address. Pass either a public IP address to release an EC2 Classic EIP, or an AllocationId to release a VPC EIP.
CLI Example:
salt myminion boto_ec2.release_eip_address allocation_id=eipalloc-ef382c8a
New in version 2016.3.0.
salt.modules.boto_ec2.
run
(image_id, name=None, tags=None, key_name=None, security_groups=None, user_data=None, instance_type='m1.small', placement=None, kernel_id=None, ramdisk_id=None, monitoring_enabled=None, vpc_id=None, vpc_name=None, subnet_id=None, subnet_name=None, private_ip_address=None, block_device_map=None, disable_api_termination=None, instance_initiated_shutdown_behavior=None, placement_group=None, client_token=None, security_group_ids=None, security_group_names=None, additional_info=None, tenancy=None, instance_profile_arn=None, instance_profile_name=None, ebs_optimized=None, network_interface_id=None, network_interface_name=None, region=None, key=None, keyid=None, profile=None, network_interfaces=None)¶Create and start an EC2 instance.
Returns True if the instance was created; otherwise False.
CLI Example:
salt myminion boto_ec2.run ami-b80c2b87 name=myinstance
(boto.ec2.blockdevicemapping.BlockDeviceMapping) – A BlockDeviceMapping data structure describing the EBS volumes associated with the Image. (string) - A string representation of a BlockDeviceMapping structure (dict) - A dict describing a BlockDeviceMapping structure
YAML example:
device-maps:
/dev/sdb:
ephemeral_name: ephemeral0
/dev/sdc:
ephemeral_name: ephemeral1
/dev/sdd:
ephemeral_name: ephemeral2
/dev/sde:
ephemeral_name: ephemeral3
/dev/sdf:
size: 20
volume_type: gp2
salt.modules.boto_ec2.
set_attribute
(attribute, attribute_value, instance_name=None, instance_id=None, region=None, key=None, keyid=None, profile=None, filters=None)¶Set an EC2 instance attribute. Returns whether the operation succeeded or not.
CLI Example:
salt myminion boto_ec2.set_attribute sourceDestCheck False instance_name=my_instance
New in version 2016.11.0.
YAML example fragment:
- filters:
attachment.instance_id: i-abcdef12
tags:
Name: dev-int-abcdef12.aws-foo.com
- filters:
attachment.device: /dev/sdf
tags:
ManagedSnapshots: true
BillingGroup: bubba.hotep@aws-foo.com
in_states:
- stopped
- terminated
- filters:
instance_name: prd-foo-01.aws-foo.com
tags:
Name: prd-foo-01.aws-foo.com
BillingGroup: infra-team@aws-foo.com
- filters:
volume_ids: [ vol-12345689, vol-abcdef12 ]
tags:
BillingGroup: infra-team@aws-foo.com
salt.modules.boto_ec2.
terminate
(instance_id=None, name=None, region=None, key=None, keyid=None, profile=None, filters=None)¶Terminate the instance described by instance_id or name.
CLI Example:
salt myminion boto_ec2.terminate name=myinstance
salt myminion boto_ec2.terminate instance_id=i-a46b9f
salt.modules.boto_ec2.
unassign_private_ip_addresses
(network_interface_name=None, network_interface_id=None, private_ip_addresses=None, region=None, key=None, keyid=None, profile=None)¶Unassigns one or more secondary private IP addresses from a network interface
CLI Example:
salt myminion boto_ec2.unassign_private_ip_addresses network_interface_name=my_eni private_ip_addresses=private_ip
New in version 2017.7.0.