vmware_vm_facts – Return basic facts pertaining to a VMware machine guest¶
New in version 2.0.
Synopsis¶
Return basic facts pertaining to a vSphere or ESXi virtual machine guest.
Cluster name as fact is added in version 2.7.
Requirements¶
The below requirements are needed on the host that executes this module.
python >= 2.6
PyVmomi
Parameters¶
Parameter | Choices/Defaults | Comments |
---|---|---|
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.
|
|
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.
|
show_attribute
boolean
added in 2.8 |
|
Attributes related to VM guest shown in facts only when this is set
true . |
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 |
|
validate_certs
boolean
|
|
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. |
vm_type
string
added in 2.5 |
|
If set to
vm , then facts are gathered for virtual machines only.If set to
template , then facts are gathered for virtual machine templates only.If set to
all , then facts are gathered for all virtual machines and virtual machine templates. |
Notes¶
Note
Tested on ESXi 6.7, vSphere 5.5 and vSphere 6.5
From 2.8 and onwards, facts are returned as list of dict instead of dict.
Examples¶
- name: Gather all registered virtual machines
vmware_vm_facts:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
delegate_to: localhost
register: vmfacts
- debug:
var: vmfacts.virtual_machines
- name: Gather only registered virtual machine templates
vmware_vm_facts:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
vm_type: template
delegate_to: localhost
register: template_facts
- debug:
var: template_facts.virtual_machines
- name: Gather only registered virtual machines
vmware_vm_facts:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
vm_type: vm
delegate_to: localhost
register: vm_facts
- debug:
var: vm_facts.virtual_machines
- name: Get UUID from given VM Name
vmware_vm_facts:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
vm_type: vm
delegate_to: localhost
register: vm_facts
- debug:
msg: "{{ item.uuid }}"
with_items:
- "{{ vm_facts.virtual_machines | json_query(query) }}"
vars:
query: "[?guest_name=='DC0_H0_VM0']"
Return Values¶
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
virtual_machines
list
|
success |
list of dictionary of virtual machines and their facts
Sample:
[{'guest_name': 'ubuntu_t', 'cluster': None, 'esxi_hostname': '10.76.33.226', 'guest_fullname': 'Ubuntu Linux (64-bit)', 'ip_address': '', 'mac_address': ['00:50:56:87:a5:9a'], 'power_state': 'poweredOff', 'uuid': '4207072c-edd8-3bd5-64dc-903fd3a0db04', 'vm_network': {'00:50:56:87:a5:9a': {'ipv4': ['10.76.33.228'], 'ipv6': []}}, 'attributes': {'job': 'backup-prepare'}}]
|
Status¶
This module is not guaranteed to have a backwards compatible interface. [preview]
This module is maintained by the Ansible Community. [community]