ec2_ami_find - Searches for AMIs to obtain the AMI ID and other information
New in version 2.0.
Synopsis
- Returns list of matching AMIs with AMI ID, along with other useful information
- Can search AMIs with different owners
- Can search by matching tag(s), by AMI name and/or other criteria
- Results can be sorted and sliced
Requirements (on host that executes module)
- python >= 2.6
- boto
Options
| parameter | required | default | choices | comments |
|---|---|---|---|---|
| ami_id | no | An AMI ID to match. | ||
| ami_tags | no | A hash/dictionary of tags to match for the AMI. | ||
| architecture | no | An architecture type to match (e.g. x86_64). | ||
| hypervisor | no | A hypervisor type type to match (e.g. xen). | ||
| is_public | no |
| Whether or not the image(s) are public. | |
| name | no | An AMI name to match. | ||
| no_result_action | no | success |
| What to do when no results are found. 'success' reports success and returns an empty array 'fail' causes the module to report failure |
| owner | no | Search AMIs owned by the specified owner Can specify an AWS account ID, or one of the special IDs 'self', 'amazon' or 'aws-marketplace' If not specified, all EC2 AMIs in the specified region will be searched. You can include wildcards in many of the search options. An asterisk (*) matches zero or more characters, and a question mark (?) matches exactly one character. You can escape special characters using a backslash (\) before the character. For example, a value of \*amazon\?\ searches for the literal string *amazon?\. | ||
| platform | no | Platform type to match. | ||
| product_code (added in 2.3)
| no | Marketplace product code to match. | ||
| region | yes | The AWS region to use. aliases: aws_region, ec2_region | ||
| sort | no |
| Optional attribute which with to sort the results. If specifying 'tag', the 'tag_name' parameter is required. Starting at version 2.1, additional sort choices of architecture, block_device_mapping, creationDate, hypervisor, is_public, location, owner_id, platform, root_device_name, root_device_type, state, and virtualization_type are supported. | |
| sort_end | no | Which result to end with (when sorting). Corresponds to Python slice notation. | ||
| sort_order | no | ascending |
| Order in which to sort results. Only used when the 'sort' parameter is specified. |
| sort_start | no | Which result to start with (when sorting). Corresponds to Python slice notation. | ||
| sort_tag | no | Tag name with which to sort results. Required when specifying 'sort=tag'. | ||
| state | no | available | AMI state to match. | |
| virtualization_type | no | Virtualization type to match (e.g. hvm). |
Examples
# Note: These examples do not set authentication details, see the AWS Guide for details.
# Search for the AMI tagged "project:website"
- ec2_ami_find:
owner: self
ami_tags:
project: website
no_result_action: fail
register: ami_find
# Search for the latest Ubuntu 14.04 AMI
- ec2_ami_find:
name: "ubuntu/images/ebs/ubuntu-trusty-14.04-amd64-server-*"
owner: 099720109477
sort: name
sort_order: descending
sort_end: 1
register: ami_find
# Launch an EC2 instance
- ec2:
image: "{{ ami_find.results[0].ami_id }}"
instance_type: m3.medium
key_name: mykey
wait: yes
Return Values
Common return values are documented here Return Values, the following are the fields unique to this module:
| name | description | returned | type | sample |
|---|---|---|---|---|
| ami_id | id of found amazon image | when AMI found | string | ami-e9095e8c |
| architecture | architecture of image | when AMI found | string | x86_64 |
| block_device_mapping | block device mapping associated with image | when AMI found | dict | { '/dev/xvda': { 'delete_on_termination': true, 'encrypted': false, 'size': 8, 'snapshot_id': 'snap-ca0330b8', 'volume_type': 'gp2' } |
| creationDate | creation date of image | when AMI found | string | 2015-10-15T22:43:44.000Z |
| description | description of image | when AMI found | string | test-server01 |
| hypervisor | type of hypervisor | when AMI found | string | xen |
| is_public | whether image is public | when AMI found | bool | False |
| location | location of image | when AMI found | string | 435210894375/test-server01-20151015-234343 |
| name | ami name of image | when AMI found | string | test-server01-20151015-234343 |
| owner_id | owner of image | when AMI found | string | 435210894375 |
| platform | platform of image | when AMI found | string | None |
| root_device_name | root device name of image | when AMI found | string | /dev/xvda |
| root_device_type | root device type of image | when AMI found | string | ebs |
| state | state of image | when AMI found | string | available |
| tags | tags assigned to image | when AMI found | dict | { 'Environment': 'devel', 'Name': 'test-server01', 'Role': 'web' } |
| virtualization_type | image virtualization type | when AMI found | string | hvm |
Notes
Note
- This module is not backwards compatible with the previous version of the ec2_search_ami module which worked only for Ubuntu AMIs listed on cloud-images.ubuntu.com.
- See the example below for a suggestion of how to search by distro/release.
Status
This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.
For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Testing Ansible and Developing Modules.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/ec2_ami_find_module.html