On this page
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