How to Get VMware vSphere Virtual Machine UUID with Ansible?
I’m going to show you a live Playbook and some simple Ansible code. I’m Luca Berton and welcome to today’s episode of Ansible Pilot.
Ansible Get VMware vSphere Virtual Machine UUID
community.vmware.vmware_guest_info
- Gather info about a single VM
Let’s talk about the Ansible module vmware_guest_info
.
The full name is community.vmware.vmware_guest_info
, which means that is part of the collection of modules to interact with VMware, community-supported.
The module’s purpose is to gather info about a single VM.
Parameters
- hostname string / port integer / username string / password string / datacenter string / validate_certs boolean - connection details
- name string - Virtual machine name
The following parameters are useful in order to Get VMware vSphere Virtual Machine UUID using the module vmware_guest_info
.
First of all, we need to establish the connection with VMware vSphere or VMware vCenter using a plethora of self-explicative parameters: hostname
, port
, username
, password
, datacenter
, and validate_certs
.
Once the connection is successfully established you could specify the virtual machine name
to obtain all information about it.
Links

Playbook
How to Get VMware vSphere Virtual Machine UUID with Ansible. I’m going to show you how to Gather Information about a specific “myvm” VMware Virtual Machine and select the UUID using Ansible Playbook.
code
- vm_uuid.yml
---
- name: vm UUID Playbook
hosts: localhost
become: false
gather_facts: false
collections:
- community.vmware
pre_tasks:
- include_vars: vars.yml
tasks:
- name: Get VM UUID
vmware_guest_info:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ vcenter_datacenter }}"
validate_certs: "{{ vcenter_validate_certs }}"
name: "{{ vm_name }}"
register: detailed_vm_info
- name: print VM UUID
ansible.builtin.debug:
var: detailed_vm_info.instance.hw_product_uuid
- vars.yml
---
vcenter_hostname: "vmware.example.com"
vcenter_datacenter: "vmwaredatacenter"
vcenter_validate_certs: false
vcenter_username: "[email protected]"
vcenter_password: "MySecretPassword123"
vm_name: "myvm"
execution
$ ansible-playbook vm_uuid.yml
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost
does not match 'all'
PLAY [vm UUID Playbook] ***************************************************************************************
TASK [include_vars] ***************************************************************************************
ok: [localhost]
TASK [Get VM UUID] ****************************************************************************************
ok: [localhost]
TASK [print VM UUID] **************************************************************************************
ok: [localhost] => {
"detailed_vm_info.instance.hw_product_uuid": "4225a846-b176-892d-0e27-10a4106269a0"
}
PLAY RECAP ************************************************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
idempotency
$ ansible-playbook vm_uuid.yml
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost
does not match 'all'
PLAY [vm UUID Playbook] ***************************************************************************************
TASK [include_vars] ***************************************************************************************
ok: [localhost]
TASK [Get VM UUID] ****************************************************************************************
ok: [localhost]
TASK [print VM UUID] **************************************************************************************
ok: [localhost] => {
"detailed_vm_info.instance.hw_product_uuid": "4225a846-b176-892d-0e27-10a4106269a0"
}
PLAY RECAP ************************************************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
vSphere
after execution
Conclusion
Now you know how to Get VMware vSphere Virtual Machine UUID with Ansible. Subscribe to the YouTube channel, Medium, and Website, X (formerly Twitter) to not miss the next episode of the Ansible Pilot.
Academy
Learn the Ansible automation technology with some real-life examples in my
Udemy 300+ Lessons Video Course.
My book Ansible By Examples: 200+ Automation Examples For Linux and Windows System Administrator and DevOps
Donate
Want to keep this project going? Please donate