vmware_vm_inventory – VMware Guest inventory source

New in version 2.7.

Synopsis

  • Get virtual machines as inventory hosts from VMware environment.
  • Uses any file which ends with vmware.yml or vmware.yaml as a YAML configuration file.
  • The inventory_hostname is always the ‘Name’ and UUID of the virtual machine. UUID is added as VMware allows virtual machines with the same name.

Requirements

The below requirements are needed on the local master node that executes this inventory.

  • Python >= 2.7
  • PyVmomi
  • requests >= 2.3
  • vSphere Automation SDK - For tag feature
  • vCloud Suite SDK - For tag feature

Parameters

Parameter Choices/Defaults Configuration Comments
cache
boolean
    Choices:
  • no ←
  • yes
ini entries:

[inventory]
cache = no

env:ANSIBLE_INVENTORY_CACHE
Toggle to enable/disable the caching of the inventory's source data, requires a cache plugin setup to work.
cache_connection
string
ini entries:

[defaults]
fact_caching_connection = VALUE

[inventory]
cache_connection = VALUE

env:ANSIBLE_CACHE_PLUGIN_CONNECTION
env:ANSIBLE_INVENTORY_CACHE_CONNECTION
Cache connection data or path, read cache plugin documentation for specifics.
cache_plugin
string
Default:
"memory"
ini entries:

[defaults]
fact_caching = memory

[inventory]
cache_plugin = memory

env:ANSIBLE_CACHE_PLUGIN
env:ANSIBLE_INVENTORY_CACHE_PLUGIN
Cache plugin to use for the inventory's source data.
cache_prefix
-
Default:
"ansible_inventory_"
ini entries:

[default]
fact_caching_prefix = ansible_inventory_

[inventory]
cache_prefix = ansible_inventory_

env:ANSIBLE_CACHE_PLUGIN_PREFIX
env:ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX
Prefix to use for cache plugin files/tables
cache_timeout
integer
Default:
3600
ini entries:

[defaults]
fact_caching_timeout = 3600

[inventory]
cache_timeout = 3600

env:ANSIBLE_CACHE_PLUGIN_TIMEOUT
env:ANSIBLE_INVENTORY_CACHE_TIMEOUT
Cache duration in seconds
hostname
- / required
env:VMWARE_SERVER
Name of vCenter or ESXi server.
password
- / required
env:VMWARE_PASSWORD
Password of vSphere admin user.
port
-
Default:
443
env:VMWARE_PORT
Port number used to connect to vCenter or ESXi Server.
properties
list
added in 2.9
Default:
["name", "config.cpuHotAddEnabled", "config.cpuHotRemoveEnabled", "config.instanceUuid", "config.hardware.numCPU", "config.template", "config.name", "guest.hostName", "guest.ipAddress", "guest.guestId", "guest.guestState", "runtime.maxMemoryUsage", "customValue"]
Specify the list of VMware schema properties associated with the VM.
These properties will be populated in hostvars of the given VM.
Each value in the list specifies the path to a specific property in VM object.
username
- / required
env:VMWARE_USERNAME
Name of vSphere admin user.
validate_certs
boolean
Default:
"yes"
Allows connection when SSL certificates are not valid. Set to false when certificates are not trusted.
with_tags
boolean
Default:
"no"
Include tags and associated virtual machines.
Requires 'vSphere Automation SDK' library to be installed on the given controller machine.
Please refer following URLs for installation steps
https://code.vmware.com/web/sdk/65/vsphere-automation-python

Examples

# Sample configuration file for VMware Guest dynamic inventory
    plugin: vmware_vm_inventory
    strict: False
    hostname: 10.65.223.31
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: False
    with_tags: True

# Gather minimum set of properties for VMware guest
    plugin: vmware_vm_inventory
    strict: False
    hostname: 10.65.223.31
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: False
    with_tags: False
    properties:
    - 'name'
    - 'guest.ipAddress'

Status

Authors

  • Abhijeet Kasurde (@Akasurde)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.