# Ansible VMware external inventory script settings

[vmware]

# The resolvable hostname or ip address of the vsphere
server=vcenter

# The port for the vsphere API
#port=443

# The username with access to the vsphere API
username=administrator@vsphere.local

# The password for the vsphere API
password=vmware

# Verify the server's SSL certificate
#validate_certs = True

# Specify the number of seconds to use the inventory cache before it is
# considered stale.  If not defined, defaults to 0 seconds.
#cache_max_age = 3600


# Specify the directory used for storing the inventory cache.  If not defined,
# caching will be disabled.
#cache_path = ~/.cache/ansible


# Max object level refers to the level of recursion the script will delve into
# the objects returned from pyvomi to find serializable facts. The default 
# level of 0 is sufficient for most tasks and will be the most performant. 
# Beware that the recursion can exceed python's limit (causing traceback),
# cause sluggish script performance and return huge blobs of facts.
# If you do not know what you are doing, leave this set to 1.
#max_object_level=1


# Lower the keynames for facts to make addressing them easier.
#lower_var_keys=True


# Host alias for objects in the inventory. VMWare allows duplicate VM names
# so they can not be considered unique. Use this setting to alter the alias
# returned for the hosts. Any atributes for the guest can be used to build 
# this alias. The default combines the config name and the config uuid and 
# expects that the ansible_host will be set by the host_pattern.
#alias_pattern={{ config.name + '_' + config.uuid }}


# Host pattern is the value set for ansible_host and ansible_ssh_host, which
# needs to be a hostname or ipaddress the ansible controlhost can reach.
#host_pattern={{ guest.ipaddress }}


# Host filters are a comma separated list of jinja patterns to remove 
# non-matching hosts from the final result.
# EXAMPLES:
#   host_filters={{ config.guestid == 'rhel7_64Guest' }}
#   host_filters={{ config.cpuhotremoveenabled != False }},{{ runtime.maxmemoryusage >= 512 }}
#   host_filters={{ config.cpuhotremoveenabled != False }},{{ runtime.maxmemoryusage >= 512 }}
# The default is only gueststate of 'running'
#host_filters={{ guest.gueststate == "running" }}


# Groupby patterns enable the user to create groups via any possible jinja
# expression. The resulting value will the groupname and the host will be added
# to that group. Be careful to not make expressions that simply return True/False
# because those values will become the literal group name. The patterns can be
# comma delimited to create as many groups as necessary
#groupby_patterns={{ guest.guestid }},{{ 'templates' if config.template else 'guests'}}

# The script attempts to recurse into virtualmachine objects and serialize
# all available data. The serialization is comprehensive but slow. If the
# vcenter environment is large and the desired properties are known, create
# a 'properties' section in this config and make an arbitrary list of
# key=value settings where the value is a path to a specific property. If 
# If this feature is enabled, be sure to fetch every property that is used
# in the jinja expressions defined above. For performance tuning, reduce
# the number of properties to the smallest amount possible and limit the 
# use of properties that are not direct attributes of vim.VirtualMachine
#[properties]
#prop01=name
#prop02=config.cpuHotAddEnabled
#prop03=config.cpuHotRemoveEnabled
#prop04=config.instanceUuid
#prop05=config.hardware.numCPU
#prop06=config.template
#prop07=config.name
#prop08=guest.hostName
#prop09=guest.ipAddress
#prop10=guest.guestId
#prop11=guest.guestState
#prop12=runtime.maxMemoryUsage
