You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/examples/scripts/ec2_external_inventory.py

378 lines
12 KiB
Python

Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
#!/usr/bin/python -tt
'''
EC2 external inventory script
=================================
Generates inventory that Ansible can understand by making API request to
12 years ago
AWS EC2 using the Boto library.
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
NOTE: This script assumes Ansible is being executed where the environment
variables needed for Boto have already been set:
export AWS_ACCESS_KEY_ID='AK123'
export AWS_SECRET_ACCESS_KEY='abc123'
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
For more details, see: http://docs.pythonboto.org/en/latest/boto_config_tut.html
When run against a specific host, this script returns the following variables:
- ec2_ami_launch_index
- ec2_architecture
- ec2_association
- ec2_attachTime
- ec2_attachment
- ec2_attachmentId
- ec2_client_token
- ec2_deleteOnTermination
- ec2_description
- ec2_deviceIndex
- ec2_dns_name
- ec2_eventsSet
- ec2_group_name
- ec2_hypervisor
- ec2_id
- ec2_image_id
- ec2_instanceState
- ec2_instance_type
- ec2_ipOwnerId
- ec2_ip_address
- ec2_item
- ec2_kernel
- ec2_key_name
- ec2_launch_time
- ec2_monitored
- ec2_monitoring
- ec2_networkInterfaceId
- ec2_ownerId
- ec2_persistent
- ec2_placement
- ec2_platform
- ec2_previous_state
- ec2_private_dns_name
- ec2_private_ip_address
- ec2_publicIp
- ec2_public_dns_name
- ec2_ramdisk
- ec2_reason
- ec2_region
- ec2_requester_id
- ec2_root_device_name
- ec2_root_device_type
- ec2_security_group_ids
- ec2_security_group_names
- ec2_shutdown_state
- ec2_sourceDestCheck
- ec2_spot_instance_request_id
- ec2_state
- ec2_state_code
- ec2_state_reason
- ec2_status
- ec2_subnet_id
- ec2_tenancy
- ec2_virtualization_type
- ec2_vpc_id
These variables are pulled out of a boto.ec2.instance object. There is a lack of
consistency with variable spellings (camelCase and underscores) since this
just loops through all variables the object exposes. It is preferred to use the
ones with underscores when multiple exist.
In addition, if an instance has AWS Tags associated with it, each tag is a new
variable named:
- ec2_tag_[Key] = [Value]
12 years ago
Security groups are comma-separated in 'ec2_security_group_ids' and
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
'ec2_security_group_names'.
'''
# (c) 2012, Peter Sankauskas
#
# This file is part of Ansible,
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
######################################################################
import os
import argparse
import re
from time import time
from boto import ec2
import ConfigParser
try:
import json
except ImportError:
import simplejson as json
class Ec2Inventory(object):
def __init__(self):
''' Main execution path '''
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Inventory grouped by instance IDs, tags, security groups, regions,
# and availability zones
self.inventory = {}
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Index of hostname (address) to instance ID
self.index = {}
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Read settings and parse CLI arguments
self.read_settings()
self.parse_cli_args()
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Cache
if self.args.refresh_cache:
12 years ago
self.do_api_calls_update_cache()
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
elif not self.is_cache_valid():
self.do_api_calls_update_cache()
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Data to print
if self.args.host:
data_to_print = self.get_host_info()
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
elif self.args.list:
# Display list of instances for inventory
if len(self.inventory) == 0:
data_to_print = self.get_inventory_from_cache()
else:
data_to_print = self.json_format_dict(self.inventory, True)
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
print data_to_print
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
def is_cache_valid(self):
''' Determines if the cache files have expired, or if it is still valid '''
if os.path.isfile(self.cache_path_cache):
mod_time = os.path.getmtime(self.cache_path_cache)
current_time = time()
if (mod_time + self.cache_max_age) > current_time:
if os.path.isfile(self.cache_path_index):
return True
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
return False
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
def read_settings(self):
''' Reads the settings from the ec2.ini file '''
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
config = ConfigParser.SafeConfigParser()
config.read(os.path.dirname(os.path.realpath(__file__)) + '/ec2.ini')
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Regions
self.regions = []
configRegions = config.get('ec2', 'regions')
if (configRegions == 'all'):
for regionInfo in ec2.regions():
self.regions.append(regionInfo.name)
else:
self.regions = configRegions.split(",")
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Destination addresses
self.destination_variable = config.get('ec2', 'destination_variable')
self.vpc_destination_variable = config.get('ec2', 'vpc_destination_variable')
# Cache related
cache_path = config.get('ec2', 'cache_path')
self.cache_path_cache = cache_path + "/ansible-ec2.cache"
self.cache_path_index = cache_path + "/ansible-ec2.index"
self.cache_max_age = config.getint('ec2', 'cache_max_age')
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
def parse_cli_args(self):
''' Command line argument processing '''
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
parser = argparse.ArgumentParser(description='Produce an Ansible Inventory file based on EC2')
12 years ago
parser.add_argument('--list', action='store_true', default=True,
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
help='List instances (default: True)')
12 years ago
parser.add_argument('--host', action='store',
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
help='Get all the variables about a specific instance')
12 years ago
parser.add_argument('--refresh-cache', action='store_true', default=False,
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
help='Force refresh of cache by making API requests to EC2 (default: False - use cache files)')
self.args = parser.parse_args()
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
def do_api_calls_update_cache(self):
''' Do API calls to each region, and save data in cache files '''
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
for region in self.regions:
self.get_instances_by_region(region)
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
self.write_to_cache(self.inventory, self.cache_path_cache)
self.write_to_cache(self.index, self.cache_path_index)
def get_instances_by_region(self, region):
''' Makes an AWS EC2 API call to the list of instances in a particular
region '''
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
conn = ec2.connect_to_region(region)
reservations = conn.get_all_instances()
for reservation in reservations:
for instance in reservation.instances:
self.add_instance(instance, region)
def get_instance(self, region, instance_id):
''' Gets details about a specific instance '''
conn = ec2.connect_to_region(region)
reservations = conn.get_all_instances([instance_id])
for reservation in reservations:
for instance in reservation.instances:
return instance
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
def add_instance(self, instance, region):
''' Adds an instance to the inventory and index, as long as it is
addressable '''
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Only want running instances
if instance.state == 'terminated':
return
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Select the best destination address
if instance.subnet_id:
dest = getattr(instance, self.vpc_destination_variable)
else:
dest = getattr(instance, self.destination_variable)
if dest == None:
# Skip instances we cannot address (e.g. private VPC subnet)
return
# Add to index
self.index[dest] = [region, instance.id]
# Inventory: Group by instance ID (always a group of 1)
self.inventory[instance.id] = [dest]
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Inventory: Group by region
self.push(self.inventory, region, dest)
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Inventory: Group by availability zone
self.push(self.inventory, instance.placement, dest)
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Inventory: Group by security group
for group in instance.groups:
key = self.to_safe("security_group_" + group.name)
self.push(self.inventory, key, dest)
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Inventory: Group by tag keys
for k, v in instance.tags.iteritems():
key = self.to_safe("tag_" + k + "=" + v)
12 years ago
self.push(self.inventory, key, dest)
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
def get_host_info(self):
''' Get variables about a specific host '''
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
if len(self.index) == 0:
# Need to load index from cache
self.load_index_from_cache()
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
(region, instance_id) = self.index[self.args.host]
instance = self.get_instance(region, instance_id)
instance_vars = {}
for key in vars(instance):
value = getattr(instance, key)
key = self.to_safe('ec2_' + key)
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Handle complex types
if type(value) in [int, bool]:
instance_vars[key] = value
elif type(value) in [str, unicode]:
instance_vars[key] = value.strip()
elif type(value) == type(None):
instance_vars[key] = ''
elif key == 'ec2_region':
instance_vars[key] = value.name
elif key == 'ec2_tags':
for k, v in value.iteritems():
key = self.to_safe('ec2_tag_' + k)
instance_vars[key] = v
elif key == 'ec2_groups':
group_ids = []
group_names = []
for group in value:
group_ids.append(group.id)
group_names.append(group.name)
instance_vars["ec2_security_group_ids"] = ','.join(group_ids)
instance_vars["ec2_security_group_names"] = ','.join(group_names)
else:
pass
# TODO Product codes if someone finds them useful
#print key
#print type(value)
#print value
12 years ago
return self.json_format_dict(instance_vars, True)
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
def push(self, my_dict, key, element):
''' Pushed an element onto an array that may not have been defined in
the dict '''
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
if key in my_dict:
my_dict[key].append(element);
else:
12 years ago
my_dict[key] = [element]
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
def get_inventory_from_cache(self):
''' Reads the inventory from the cache file and returns it as a JSON
object '''
cache = open(self.cache_path_cache, 'r')
json_inventory = cache.read()
return json_inventory
def load_index_from_cache(self):
''' Reads the index from the cache file sets self.index '''
cache = open(self.cache_path_index, 'r')
json_index = cache.read()
self.index = json.loads(json_index)
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
def write_to_cache(self, data, filename):
''' Writes data in JSON format to a file '''
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
json_data = self.json_format_dict(data, True)
cache = open(filename, 'w')
cache.write(json_data)
cache.close()
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
def to_safe(self, word):
''' Converts 'bad' characters in a string to underscores so they can be
used as Ansible groups '''
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
return re.sub("[^A-Za-z0-9\-]", "_", word)
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
def json_format_dict(self, data, pretty=False):
''' Converts a dict to a JSON object and dumps it as a formatted
string '''
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
if pretty:
return json.dumps(data, sort_keys=True, indent=2)
else:
return json.dumps(data)
12 years ago
Squashed commit of the following: commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55 Merge: 7286f3a 111561f Author: Michael DeHaan <michael.dehaan@gmail.com> Date: Sun Jul 15 14:34:10 2012 -0400 Merge branch 'devel' of https://github.com/pas256/ansible into pasec2 commit 111561f7829b517fb0b7577a0e2147292bdba58f Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 16:13:48 2012 -0700 Reading the config file from the same directory as the script, and fixing typo in security group name commit e63659d04e65c0be3db833038f55a21d2ec511a9 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 16 10:56:59 2012 -0700 Adding list of variables to documentation commit d0aecf025e23cf26f3df5a253639b0ec425b7223 Author: Peter Sankauskas <pas256@gmail.com> Date: Fri Jul 13 15:35:00 2012 -0700 Finished EC2 external inventory script commit 136b8a50824b7f964f162fad153784899d6dd634 Author: Peter Sankauskas <pas256@gmail.com> Date: Thu Jul 12 18:01:44 2012 -0700 Almost done, just a few more types to deal with commit 09f92052ce2e21a2c216692a20ce1bb03eacc2d9 Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 23:43:30 2012 -0700 Adding region options to config, and getting host details happening, but need to figure out complex types commit a940c9b8fb9258043ec4f4a37fef80fdbcfcda7b Author: Peter Sankauskas <pas256@gmail.com> Date: Tue Jul 10 18:06:05 2012 -0700 Converting to a class, commenting methods, reading settings from a config file, and starting to work on the host variables commit 43eb3214a6bdd65d3ef3961183252932b6984004 Author: Peter Sankauskas <pas256@gmail.com> Date: Mon Jul 9 13:11:27 2012 -0700 First pass of the Ansible EC2 inventory script
13 years ago
# Run the script
Ec2Inventory()