Skip to main content

AWS EC2 inventory generator for Ansible

Project description

# ec2ansible: EC2 inventory generator for Ansible

[![Build Status](]( [![Downloads](]( [![MIT License](](

`ec2ansible` is a cli tool written in Python (2.7+) for generating realtime AWS EC2 inventory for [Ansible](

There is an [official script]( doing the similar thing. But usually when we are provisioning a server, we only care about its **role**, eg. web server, database server, proxy server, etc, instead of its availability zone, AMI ID, nor instance type. `ec2ansible` groups your EC2 servers into Ansible inventory hierarchically based on the `Role` tag associated with them.

## Use Case
Asumming we have two main types of servers in the us-east-1 region: web servers and worker servers. And we have totally 5 servers as follow:
- Apache
- Nginx reverse proxy
- HAProxy reverse proxy
- Gearman worker
- Celery worker

Firstly we will add a `Role` tag for each of them with the following values:
- web_apache
- web_proxy_nginx
- web_proxy_haproxy
- worker_gearman
- worker_celery

Here is a sample grouping generated by `ec2ansible`:

use1 (us-east-1)
└─── web
│ web_apache
└─── web_proxy
│ web_proxy_nginx
│ web_proxy_haproxy
└─── worker
│ worker_gearman
│ worker_celery

## Installation
`ec2ansible` is available via [pypi]( and can be installed with easy_install or [pip](
pip install ec2ansible

## Usage
1. Save [ec2ansible-sample.ini](/hehachris/ec2ansible/blob/master/ec2ansible-sample.ini) to `~/.ec2ansible` and modify it if needed
2. Specify `/usr/local/bin/ec2ansible` as the inventory for Ansible

ansible web_apache -i /usr/local/bin/ec2ansible -u ec2-user -m ping
or set in `ansible.cfg`
hostfile = /usr/local/bin/ec2ansible

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ec2ansible, version 0.1.2
Filename, size & hash File type Python version Upload date
ec2ansible-0.1.2.tar.gz (5.3 kB) View hashes Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page