- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# vmware_guest_info – Gather info about a single VM

- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Return Values
- Status

## Synopsis

- Gather information about a single VM on a VMware ESX cluster.
- This module was called `vmware_guest_facts` before Ansible 2.9. The usage did not change.

Aliases: vmware_guest_facts

## Requirements

The below requirements are needed on the host that executes this module.

- python >= 2.6
- PyVmomi

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
datacenter string / required |  | Destination datacenter for the deploy operation
folder string |  | Destination folder, absolute or relative path to find an existing guest. This is required if name is supplied. The folder should include the datacenter. ESX's datacenter is ha-datacenter Examples: folder: /ha-datacenter/vm folder: ha-datacenter/vm folder: /datacenter1/vm folder: datacenter1/vm folder: /datacenter1/vm/folder1 folder: datacenter1/vm/folder1 folder: /folder1/datacenter1/vm folder: folder1/datacenter1/vm folder: /folder1/datacenter1/vm/folder2
hostname string |  | The hostname or IP address of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable `VMWARE_HOST` will be used instead. Environment variable support added in Ansible 2.6.
moid string added in 2.9 |  | Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance. This is required if `name` or `uuid` is not supplied.
name string |  | Name of the VM to work with This is required if `uuid` or `moid` is not supplied.
name_match string | Choices: first ← last | If multiple VMs matching the name, use the first or last found
password string |  | The password of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable `VMWARE_PASSWORD` will be used instead. Environment variable support added in Ansible 2.6. aliases: pass, pwd
port integer added in 2.5 | Default: 443 | The port number of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable `VMWARE_PORT` will be used instead. Environment variable support added in Ansible 2.6.
properties list added in 2.8 |  | Specify the properties to retrieve. If not specified, all properties are retrieved (deeply). Results are returned in a structure identical to the vsphere API. Example: properties: [ "config.hardware.memoryMB", "config.hardware.numCPU", "guest.disk", "overallStatus" ] Only valid when `schema` is `vsphere`.
proxy_host string added in 2.9 |  | Address of a proxy that will receive all HTTPS requests and relay them. The format is a hostname or a IP. If the value is not specified in the task, the value of environment variable `VMWARE_PROXY_HOST` will be used instead. This feature depends on a version of pyvmomi greater than v6.7.1.2018.12
proxy_port integer added in 2.9 |  | Port of the HTTP proxy that will receive all HTTPS requests and relay them. If the value is not specified in the task, the value of environment variable `VMWARE_PROXY_PORT` will be used instead.
schema string added in 2.8 | Choices: summary ← vsphere | Specify the output schema desired. The 'summary' output schema is the legacy output from the module The 'vsphere' output schema is the vSphere API class definition which requires pyvmomi>6.7.1
tags boolean added in 2.8 | Choices: no ← yes | Whether to show tags or not. If set `True`, shows tag information. If set `False`, hides tags information. vSphere Automation SDK and vCloud Suite SDK is required.
use_instance_uuid boolean added in 2.8 | Choices: no ← yes | Whether to use the VMware instance UUID rather than the BIOS UUID.
username string |  | The username of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable `VMWARE_USER` will be used instead. Environment variable support added in Ansible 2.6. aliases: admin, user
uuid string |  | UUID of the instance to manage if known, this is VMware's unique identifier. This is required if `name` or `moid` is not supplied.
validate_certs boolean | Choices: no yes ← | Allows connection when SSL certificates are not valid. Set to `false` when certificates are not trusted. If the value is not specified in the task, the value of environment variable `VMWARE_VALIDATE_CERTS` will be used instead. Environment variable support added in Ansible 2.6. If set to `yes`, please make sure Python >= 2.7.9 is installed on the given machine.

## Notes

Note

- Tested on vSphere 5.5, 6.7

## Examples

    - name: Gather info from standalone ESXi server having datacenter as 'ha-datacenter'
      vmware_guest_info:
        hostname: "{{ vcenter_hostname }}"
        username: "{{ vcenter_username }}"
        password: "{{ vcenter_password }}"
        datacenter: ha-datacenter
        validate_certs: no
        uuid: 421e4592-c069-924d-ce20-7e7533fab926
      delegate_to: localhost
      register: info

    - name: Gather some info from a guest using the vSphere API output schema
      vmware_guest_info:
        hostname: "{{ vcenter_hostname }}"
        username: "{{ vcenter_username }}"
        password: "{{ vcenter_password }}"
        validate_certs: no
        datacenter: "{{ datacenter_name }}"
        name: "{{ vm_name }}"
        schema: "vsphere"
        properties: ["config.hardware.memoryMB", "guest.disk", "overallStatus"]
      delegate_to: localhost
      register: info

    - name: Gather some information about a guest using MoID
      vmware_guest_facts:
        hostname: "{{ vcenter_hostname }}"
        username: "{{ vcenter_username }}"
        password: "{{ vcenter_password }}"
        validate_certs: no
        datacenter: "{{ datacenter_name }}"
        moid: vm-42
        schema: "vsphere"
        properties: ["config.hardware.memoryMB", "guest.disk", "overallStatus"]
      delegate_to: localhost
      register: vm_moid_info

    - name: Gather Managed object ID (moid) from a guest using the vSphere API output schema for REST Calls
      vmware_guest_info:
        hostname: "{{ vcenter_hostname }}"
        username: "{{ vcenter_username }}"
        password: "{{ vcenter_password }}"
        validate_certs: no
        datacenter: "{{ datacenter_name }}"
        name: "{{ vm_name }}"
        schema: "vsphere"
        properties:
          - _moId
      delegate_to: localhost
      register: moid_info

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
instance dictionary | always | metadata about the virtual machine Sample: {'annotation': '', 'current_snapshot': None, 'customvalues': {}, 'guest_consolidation_needed': False, 'guest_question': None, 'guest_tools_status': 'guestToolsNotRunning', 'guest_tools_version': '10247', 'hw_cores_per_socket': 1, 'hw_datastores': ['ds_226_3'], 'hw_esxi_host': '10.76.33.226', 'hw_eth0': {'addresstype': 'assigned', 'ipaddresses': None, 'label': 'Network adapter 1', 'macaddress': '00:50:56:87:a5:9a', 'macaddress_dash': '00-50-56-87-a5-9a', 'portgroup_key': None, 'portgroup_portkey': None, 'summary': 'VM Network'}, 'hw_files': ['[ds_226_3] ubuntu_t/ubuntu_t.vmx', '[ds_226_3] ubuntu_t/ubuntu_t.nvram', '[ds_226_3] ubuntu_t/ubuntu_t.vmsd', '[ds_226_3] ubuntu_t/vmware.log', '[ds_226_3] u0001/u0001.vmdk'], 'hw_folder': '/DC0/vm/Discovered virtual machine', 'hw_guest_full_name': None, 'hw_guest_ha_state': None, 'hw_guest_id': None, 'hw_interfaces': ['eth0'], 'hw_is_template': False, 'hw_memtotal_mb': 1024, 'hw_name': 'ubuntu_t', 'hw_power_status': 'poweredOff', 'hw_processor_count': 1, 'hw_product_uuid': '4207072c-edd8-3bd5-64dc-903fd3a0db04', 'hw_version': 'vmx-13', 'instance_uuid': '5007769d-add3-1e12-f1fe-225ae2a07caf', 'ipv4': None, 'ipv6': None, 'module_hw': True, 'snapshots': [], 'tags': ['backup'], 'vnc': {}, 'moid': 'vm-42', 'vimref': 'vim.VirtualMachine:vm-42'}

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Loic Blot (@nerzhul) <loic.blot@unix-experience.fr>

Hint

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