What you'll learn
- How to Get VMware vSphere Virtual Machine UUID with Ansible?
- Ansible Get VMware vSphere Virtual Machine UUID
- Parameters
- Links
- Playbook
- code
- execution
- idempotency
- after execution
- Conclusion
How to Get VMware vSphere Virtual Machine UUID with Ansible?
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
- [`community.vmware.vmware_guest_info`](https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_guest_info_module.html)
Playbook
How to Get VMware vSphere Virtual Machine UUID with Ansible.
code
- vm_uuid.yml
```yaml
---
- 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
```yaml
---
vcenter_hostname: "vmware.example.com"
vcenter_datacenter: "vmwaredatacenter"
vcenter_validate_certs: false
vcenter_username: "username@vsphere.local"
vcenter_password: "MySecretPassword123"
vm_name: "myvm"
```
execution
```bash
$ 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 ***