diff --git a/contrib/inventory/ec2.py b/contrib/inventory/ec2.py index 2982ac6c544..964b5be1648 100755 --- a/contrib/inventory/ec2.py +++ b/contrib/inventory/ec2.py @@ -32,6 +32,13 @@ the AWS_PROFILE variable: For more details, see: http://docs.pythonboto.org/en/latest/boto_config_tut.html +You can filter for specific EC2 instances by creating an environment variable +named EC2_INSTANCE_FILTERS, which has the same format as the instance_filters +entry documented in ec2.ini. For example, to find all hosts whose name begins +with 'webserver', one might use: + + export EC2_INSTANCE_FILTERS='tag:Name=webserver*' + When run against a specific host, this script returns the following variables: - ec2_ami_launch_index - ec2_architecture @@ -494,8 +501,8 @@ class Ec2Inventory(object): # Instance filters (see boto and EC2 API docs). Ignore invalid filters. self.ec2_instance_filters = [] - if config.has_option('ec2', 'instance_filters'): - filters = config.get('ec2', 'instance_filters') + if config.has_option('ec2', 'instance_filters') or 'EC2_INSTANCE_FILTERS' in os.environ: + filters = os.getenv('EC2_INSTANCE_FILTERS', config.get('ec2', 'instance_filters') if config.has_option('ec2', 'instance_filters') else '') if self.stack_filters and '&' in filters: self.fail_with_error("AND filters along with stack_filter enabled is not supported.\n")