2012-08-20 23:46:45 +00:00
|
|
|
# Ansible EC2 external inventory script settings
|
|
|
|
#
|
|
|
|
|
|
|
|
[ec2]
|
|
|
|
|
2012-08-31 13:52:12 +00:00
|
|
|
# to talk to a private eucalyptus instance uncomment these lines
|
|
|
|
# and edit edit eucalyptus_host to be the host name of your cloud controller
|
|
|
|
#eucalyptus = True
|
|
|
|
#eucalyptus_host = clc.cloud.domain.org
|
|
|
|
|
2012-08-20 23:46:45 +00:00
|
|
|
# AWS regions to make calls to. Set this to 'all' to make request to all regions
|
|
|
|
# in AWS and merge the results together. Alternatively, set this to a comma
|
|
|
|
# separated list of regions. E.g. 'us-east-1,us-west-1,us-west-2'
|
|
|
|
regions = all
|
2014-01-19 18:13:43 +00:00
|
|
|
regions_exclude = us-gov-west-1,cn-north-1
|
2012-08-20 23:46:45 +00:00
|
|
|
|
|
|
|
# When generating inventory, Ansible needs to know how to address a server.
|
|
|
|
# Each EC2 instance has a lot of variables associated with it. Here is the list:
|
|
|
|
# http://docs.pythonboto.org/en/latest/ref/ec2.html#module-boto.ec2.instance
|
|
|
|
# Below are 2 variables that are used as the address of a server:
|
|
|
|
# - destination_variable
|
|
|
|
# - vpc_destination_variable
|
|
|
|
|
|
|
|
# This is the normal destination variable to use. If you are running Ansible
|
|
|
|
# from outside EC2, then 'public_dns_name' makes the most sense. If you are
|
|
|
|
# running Ansible from within EC2, then perhaps you want to use the internal
|
2014-12-16 06:31:29 +00:00
|
|
|
# address, and should set this to 'private_dns_name'. The key of an EC2 tag
|
|
|
|
# may optionally be used; however the boto instance variables hold precedence
|
|
|
|
# in the event of a collision.
|
2012-08-20 23:46:45 +00:00
|
|
|
destination_variable = public_dns_name
|
|
|
|
|
|
|
|
# For server inside a VPC, using DNS names may not make sense. When an instance
|
|
|
|
# has 'subnet_id' set, this variable is used. If the subnet is public, setting
|
|
|
|
# this to 'ip_address' will return the public IP address. For instances in a
|
|
|
|
# private subnet, this should be set to 'private_ip_address', and Ansible must
|
2015-04-07 16:19:37 +00:00
|
|
|
# be run from within EC2. The key of an EC2 tag may optionally be used; however
|
2014-12-16 06:31:29 +00:00
|
|
|
# the boto instance variables hold precedence in the event of a collision.
|
2015-06-11 09:51:35 +00:00
|
|
|
# WARNING: - instances that are in the private vpc, _without_ public ip address
|
|
|
|
# will not be listed in the inventory untill You set:
|
|
|
|
# vpc_destination_variable = 'private_ip_address'
|
2012-08-20 23:46:45 +00:00
|
|
|
vpc_destination_variable = ip_address
|
|
|
|
|
2013-09-23 18:00:56 +00:00
|
|
|
# To tag instances on EC2 with the resource records that point to them from
|
|
|
|
# Route53, uncomment and set 'route53' to True.
|
|
|
|
route53 = False
|
2013-09-24 01:40:18 +00:00
|
|
|
|
2014-03-27 18:58:46 +00:00
|
|
|
# To exclude RDS instances from the inventory, uncomment and set to False.
|
|
|
|
#rds = False
|
2014-03-27 15:57:24 +00:00
|
|
|
|
2015-06-14 20:07:39 +00:00
|
|
|
# To exclude ElastiCache instances from the inventory, uncomment and set to False.
|
|
|
|
#elasticache = False
|
|
|
|
|
2013-09-24 01:40:18 +00:00
|
|
|
# Additionally, you can specify the list of zones to exclude looking up in
|
2014-03-08 10:49:55 +00:00
|
|
|
# 'route53_excluded_zones' as a comma-separated list.
|
2013-09-24 01:40:18 +00:00
|
|
|
# route53_excluded_zones = samplezone1.com, samplezone2.com
|
2013-09-23 18:00:56 +00:00
|
|
|
|
2014-07-01 19:50:04 +00:00
|
|
|
# By default, only EC2 instances in the 'running' state are returned. Set
|
|
|
|
# 'all_instances' to True to return all instances regardless of state.
|
|
|
|
all_instances = False
|
|
|
|
|
|
|
|
# By default, only RDS instances in the 'available' state are returned. Set
|
|
|
|
# 'all_rds_instances' to True return all RDS instances regardless of state.
|
|
|
|
all_rds_instances = False
|
|
|
|
|
2015-06-14 20:07:39 +00:00
|
|
|
# By default, only ElastiCache clusters and nodes in the 'available' state
|
|
|
|
# are returned. Set 'all_elasticache_clusters' and/or 'all_elastic_nodes'
|
|
|
|
# to True return all ElastiCache clusters and nodes, regardless of state.
|
2015-06-15 09:36:33 +00:00
|
|
|
#
|
|
|
|
# Note that all_elasticache_nodes only applies to listed clusters. That means
|
|
|
|
# if you set all_elastic_clusters to false, no node will be return from
|
|
|
|
# unavailable clusters, regardless of the state and to what you set for
|
|
|
|
# all_elasticache_nodes.
|
2015-06-14 21:12:52 +00:00
|
|
|
all_elasticache_replication_groups = False
|
2015-06-14 20:07:39 +00:00
|
|
|
all_elasticache_clusters = False
|
|
|
|
all_elasticache_nodes = False
|
|
|
|
|
2012-08-20 23:46:45 +00:00
|
|
|
# API calls to EC2 are slow. For this reason, we cache the results of an API
|
|
|
|
# call. Set this to the path you want cache files to be written to. Two files
|
|
|
|
# will be written to this directory:
|
|
|
|
# - ansible-ec2.cache
|
|
|
|
# - ansible-ec2.index
|
2013-12-04 01:18:15 +00:00
|
|
|
cache_path = ~/.ansible/tmp
|
2012-08-20 23:46:45 +00:00
|
|
|
|
|
|
|
# The number of seconds a cache file is considered valid. After this many
|
|
|
|
# seconds, a new API call will be made, and the cache file will be updated.
|
2014-04-29 16:13:55 +00:00
|
|
|
# To disable the cache, set this value to 0
|
2012-08-20 23:46:45 +00:00
|
|
|
cache_max_age = 300
|
2014-07-01 19:29:39 +00:00
|
|
|
|
|
|
|
# Organize groups into a nested/hierarchy instead of a flat namespace.
|
|
|
|
nested_groups = False
|
2014-08-08 13:26:14 +00:00
|
|
|
|
2015-02-11 06:47:37 +00:00
|
|
|
# The EC2 inventory output can become very large. To manage its size,
|
|
|
|
# configure which groups should be created.
|
|
|
|
group_by_instance_id = True
|
|
|
|
group_by_region = True
|
|
|
|
group_by_availability_zone = True
|
|
|
|
group_by_ami_id = True
|
|
|
|
group_by_instance_type = True
|
|
|
|
group_by_key_pair = True
|
|
|
|
group_by_vpc_id = True
|
|
|
|
group_by_security_group = True
|
|
|
|
group_by_tag_keys = True
|
|
|
|
group_by_tag_none = True
|
|
|
|
group_by_route53_names = True
|
|
|
|
group_by_rds_engine = True
|
|
|
|
group_by_rds_parameter_group = True
|
2015-06-14 20:07:39 +00:00
|
|
|
group_by_elasticache_engine = True
|
|
|
|
group_by_elasticache_cluster = True
|
|
|
|
group_by_elasticache_parameter_group = True
|
2015-06-14 21:12:52 +00:00
|
|
|
group_by_elasticache_replication_group = True
|
2015-02-11 06:47:37 +00:00
|
|
|
|
2014-08-08 13:26:14 +00:00
|
|
|
# If you only want to include hosts that match a certain regular expression
|
2015-06-27 06:38:06 +00:00
|
|
|
# pattern_include = staging-*
|
2014-08-08 13:26:14 +00:00
|
|
|
|
|
|
|
# If you want to exclude any hosts that match a certain regular expression
|
2015-06-27 06:38:06 +00:00
|
|
|
# pattern_exclude = staging-*
|
2014-09-02 22:50:28 +00:00
|
|
|
|
|
|
|
# Instance filters can be used to control which instances are retrieved for
|
|
|
|
# inventory. For the full list of possible filters, please read the EC2 API
|
|
|
|
# docs: http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html#query-DescribeInstances-filters
|
|
|
|
# Filters are key/value pairs separated by '=', to list multiple filters use
|
|
|
|
# a list separated by commas. See examples below.
|
|
|
|
|
2015-06-27 06:38:06 +00:00
|
|
|
# Retrieve only instances with (key=value) env=staging tag
|
|
|
|
# instance_filters = tag:env=staging
|
2014-09-02 22:50:28 +00:00
|
|
|
|
|
|
|
# Retrieve only instances with role=webservers OR role=dbservers tag
|
|
|
|
# instance_filters = tag:role=webservers,tag:role=dbservers
|
|
|
|
|
2015-06-27 06:38:06 +00:00
|
|
|
# Retrieve only t1.micro instances OR instances with tag env=staging
|
|
|
|
# instance_filters = instance-type=t1.micro,tag:env=staging
|
2014-09-02 22:50:28 +00:00
|
|
|
|
|
|
|
# You can use wildcards in filter values also. Below will list instances which
|
|
|
|
# tag Name value matches webservers1*
|
|
|
|
# (ex. webservers15, webservers1a, webservers123 etc)
|
|
|
|
# instance_filters = tag:Name=webservers1*
|