Ansible dynamic inventory plugin for use with AWS EC2.
The Ansible repository already contains an EC2 dynamic inventory plugin, which may be useful to you.
This plugin differs from the 'official' one in the following ways:
-
For each host, sets the
ansible_ssh_host
variable using the public ip. This eliminates the need to reference hosts by their ip, or maintain your/etc/hosts
file. You can then create another inventory file in the same directory, and reference the hosts by their EC2 TagName
. -
Returns host variables in the
_meta
top level element, reducing the number of api calls to AWS and speeding up the provisioning process. This eliminates the need to call the executable with--host
for each host. -
Only makes 2 requests to the AWS API when called with
--list
. -
No external dependencies.
-
Creates less variables per host, but adding more would be trival. Open a pull-request if you need one defined.
See Developing Dynamic Inventory Sources for more information.
Grab the latest release from Releases
-
Download the appropriate package from releases.
-
Place the executable inside your ansible directory, alongside other inventory files in a directory or wherever you like.
-
Create a
aws-inventory.ini
file with your AWS credentials, in the same directory as the executable. See the inlcluded example ini fileaws-inventory.example.ini
. -
Test the output
./aws-inventory --list
A hacked together Makefile
is included. Try:
make
make package