Add an ec2 inventory option "boto_profile" that allows

the use of boto profiles for separating credentials as
specified in

http://boto.readthedocs.org/en/latest/boto_config_tut.html
pull/12548/head
Jeff '2 bits' Bachtel 10 years ago committed by Abhijit Menon-Sen
parent 9c967dd054
commit 8c11ea5666

@ -139,3 +139,7 @@ group_by_elasticache_replication_group = True
# tag Name value matches webservers1*
# (ex. webservers15, webservers1a, webservers123 etc)
# instance_filters = tag:Name=webservers1*
# A boto configuration profile may be used to separate out credentials
# see http://boto.readthedocs.org/en/latest/boto_config_tut.html
# boto_profile = some-boto-profile-name

@ -318,6 +318,11 @@ class Ec2Inventory(object):
self.cache_path_index = cache_dir + "/ansible-ec2.index"
self.cache_max_age = config.getint('ec2', 'cache_max_age')
# boto configuration profile
self.boto_profile = None
if config.has_option('ec2', 'boto_profile'):
self.boto_profile = config.get('ec2', 'boto_profile')
# Configure nested groups instead of flat namespace.
if config.has_option('ec2', 'nested_groups'):
self.nested_groups = config.getboolean('ec2', 'nested_groups')
@ -452,7 +457,7 @@ class Ec2Inventory(object):
for filter_key, filter_values in self.ec2_instance_filters.items():
reservations.extend(conn.get_all_instances(filters = { filter_key : filter_values }))
else:
conn = self.connect_to_aws(ec2, region)
conn = ec2.connect_to_region(region, profile_name=self.boto_profile)
# connect_to_region will fail "silently" by returning None if the region name is wrong or not supported
if conn is None:

Loading…
Cancel
Save