What you'll learn
- How to Search for EC2 AMI ID by AWS Region with Ansible?
- Ansible Search for EC2 AMI ID by AWS Region
- Parameters
- Links
- Playbook
- code
- execution
- idempotency
- Conclusion
- Related Articles
How to Search for EC2 AMI ID by AWS Region with Ansible?
Ansible Search for EC2 AMI ID by AWS Region
- `amazon.aws.ec2_ami_info`
- Gather information about ec2 AMIs
Let's talk about the Ansible module `ec2_ami_info`.
The full name is `amazon.aws.ec2_ami_info`, which means that is part of the collection of modules to interact with AWS.
The module's purpose is to gather information about ec2 AMIs.
Parameters
- filters _dictionary_ - filter terms
Example:
```yaml
name: "RHEL-8.3.0_HVM-*-x86_64-*Hourly*"
region: "us-east-1"
```
The following parameters are useful in order to Search for EC2 AMI ID by AWS Region using the module `ec2_ami_info`.
The only parameter needed is the `filters` and specify the filters keys and values.
For example, let's search for Red Hat Enterprise Linux machines version 8.3.0 running on HVM infrastructure, architecture x86_64 Hourly paid.
Links
- [`amazon.aws.ec2_ami_info`](https://docs.ansible.com/ansible/latest/collections/amazon/aws/ec2_ami_info_module.html)
Playbook
How to Search for EC2 AMI ID by AWS Region with Ansible.
code
```yaml
---
- name: AMI search
hosts: localhost
become: false
gather_facts: false
vars:
aws_region: "us-east-1"
aws_name: "RHEL-8.3.0_HVM-*-x86_64-*Hourly*"
tasks:
- name: search for AMI
amazon.aws.ec2_ami_info:
filters:
name: "{{ aws_name }}"
region: "{{ aws_region }}"
register: ami_found
- name: print AMI
ansible.builtin.debug:
var: ami_found
```
execution
```bash
$ ansible-playbook ami_search.yml
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit
localhost does not match 'all'
PLAY [AMI search] *********************************************************************************
TASK [search for existing AMI] ********************************************************************
ok: [localhost]
TASK [debug] **************************************************************************************
ok: [localhost] => {
"ami_found": {
"changed": false,
"failed": false,
"images": [
{
"architecture": "x86_64",
"block_device_mappings": [
{
"device_name": "/dev/sda1",
"ebs": {
"delete_on_termination": true,
"encrypted": false,
"snapshot_id": "snap-03f2e24f30f580353",
"volume_size": 10,
"volume_type": "gp2"
}
}
],
"creation_date": "2020-11-02T11:01:38.000Z",
"deprecation_time": "2022-11-02T11:01:38.000Z",
"description": "Provided by Red Hat, Inc.",
"ena_support": true,
"hypervisor": "xen",
"image_id": "ami-096fda3c22c1c990a",