vmware.vmware_rest.vcenter_vm_info module – Returns information about a virtual machine.

Note

This module is part of the vmware.vmware_rest collection (version 3.0.1).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install vmware.vmware_rest. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: vmware.vmware_rest.vcenter_vm_info.

New in vmware.vmware_rest 0.1.0

Synopsis

  • Returns information about a virtual machine.

Requirements

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

  • vSphere 7.0.3 or greater

  • python >= 3.6

  • aiohttp

Parameters

Parameter

Comments

clusters

list / elements=string

Clusters that must contain the virtual machine for the virtual machine to match the filter.

If unset or empty, virtual machines in any cluster match the filter.

When clients pass a value of this structure as a parameter, the field must contain the id of resources returned by vmware.vmware_rest.vcenter_cluster_info.

datacenters

aliases: filter_datacenters

list / elements=string

Datacenters that must contain the virtual machine for the virtual machine to match the filter.

If unset or empty, virtual machines in any datacenter match the filter.

When clients pass a value of this structure as a parameter, the field must contain the id of resources returned by vmware.vmware_rest.vcenter_datacenter_info.

folders

aliases: filter_folders

list / elements=string

Folders that must contain the virtual machine for the virtual machine to match the filter.

If unset or empty, virtual machines in any folder match the filter.

When clients pass a value of this structure as a parameter, the field must contain the id of resources returned by vmware.vmware_rest.vcenter_folder_info.

hosts

list / elements=string

Hosts that must contain the virtual machine for the virtual machine to match the filter.

If unset or empty, virtual machines on any host match the filter.

When clients pass a value of this structure as a parameter, the field must contain the id of resources returned by vmware.vmware_rest.vcenter_host_info.

names

aliases: filter_names

list / elements=string

Names that virtual machines must have to match the filter (see name).

If unset or empty, virtual machines with any name match the filter.

power_states

list / elements=string

Power states that a virtual machine must be in to match the filter (see :emphasis:``

If unset or empty, virtual machines in any power state match the filter.

resource_pools

list / elements=string

Resource pools that must contain the virtual machine for the virtual machine to match the filter.

If unset or empty, virtual machines in any resource pool match the filter.

When clients pass a value of this structure as a parameter, the field must contain the id of resources returned by vmware.vmware_rest.vcenter_resourcepool_info.

session_timeout

float

added in vmware.vmware_rest 2.1.0

Timeout settings for client session.

The maximal number of seconds for the whole operation including connection establishment, request sending and response.

The default value is 300s.

vcenter_hostname

string / required

The hostname or IP address of the vSphere vCenter

If the value is not specified in the task, the value of environment variable VMWARE_HOST will be used instead.

vcenter_password

string / required

The vSphere vCenter password

If the value is not specified in the task, the value of environment variable VMWARE_PASSWORD will be used instead.

vcenter_rest_log_file

string

You can use this optional parameter to set the location of a log file.

This file will be used to record the HTTP REST interaction.

The file will be stored on the host that run the module.

If the value is not specified in the task, the value of

environment variable VMWARE_REST_LOG_FILE will be used instead.

vcenter_username

string / required

The vSphere vCenter username

If the value is not specified in the task, the value of environment variable VMWARE_USER will be used instead.

vcenter_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.

Choices:

  • false

  • true ← (default)

vm

string

Virtual machine identifier.

The parameter must be the id of a resource returned by vmware.vmware_rest.vcenter_vm_info. Required with state=[‘get’]

vms

list / elements=string

Identifiers of virtual machines that can match the filter.

If unset or empty, virtual machines with any identifier match the filter.

When clients pass a value of this structure as a parameter, the field must contain the id of resources returned by vmware.vmware_rest.vcenter_vm_info.

Notes

Note

  • Tested on vSphere 7.0.3

Examples

- name: Create a VM
  vmware.vmware_rest.vcenter_vm:
    placement:
      cluster: "{{ lookup('vmware.vmware_rest.cluster_moid', '/my_dc/host/my_cluster') }}"
      datastore: "{{ lookup('vmware.vmware_rest.datastore_moid', '/my_dc/datastore/local') }}"
      folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/my_dc/vm') }}"
      resource_pool: "{{ lookup('vmware.vmware_rest.resource_pool_moid', '/my_dc/host/my_cluster/Resources') }}"
    name: test_vm1
    guest_OS: RHEL_7_64
    hardware_version: VMX_11
    memory:
      hot_add_enabled: true
      size_MiB: 1024
    disks:
    - type: SATA
      backing:
        type: VMDK_FILE
        vmdk_file: '[local] test_vm1/{{ disk_name }}.vmdk'
    - type: SATA
      new_vmdk:
        name: second_disk
        capacity: 32000000000
    cdroms:
    - type: SATA
      sata:
        bus: 0
        unit: 2
    nics:
    - backing:
        type: STANDARD_PORTGROUP
        network: "{{ lookup('vmware.vmware_rest.network_moid', '/my_dc/network/VM Network') }}"
  register: my_vm

- name: Wait until my VM is off
  vmware.vmware_rest.vcenter_vm_info:
    vm: '{{ my_vm.id }}'
  register: vm_info
  until:
  - vm_info is not failed
  - vm_info.value.power_state == "POWERED_OFF"
  retries: 60
  delay: 5

- register: _should_be_empty
  name: Search with an invalid filter
  vmware.vmware_rest.vcenter_vm_info:
    filter_names: test_vm1_does_not_exists

- name: Look up the VM called test_vm1 in the inventory
  register: search_result
  vmware.vmware_rest.vcenter_vm_info:
    filter_names:
    - test_vm1

- name: Collect information about a specific VM
  vmware.vmware_rest.vcenter_vm_info:
    vm: '{{ search_result.value[0].vm }}'
  register: test_vm1_info

Return Values

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

Key

Description

id

string

moid of the resource

Returned: On success

Sample: "vm-1049"

value

dictionary

Wait until my VM is off

Returned: On success

Sample: {"boot": {"delay": 0, "enter_setup_mode": 0, "retry": 0, "retry_delay": 10000, "type": "BIOS"}, "boot_devices": [], "cdroms": {"16002": {"allow_guest_control": 0, "backing": {"auto_detect": 1, "device_access_type": "EMULATION", "type": "HOST_DEVICE"}, "label": "CD/DVD drive 1", "sata": {"bus": 0, "unit": 2}, "start_connected": 0, "state": "NOT_CONNECTED", "type": "SATA"}}, "cpu": {"cores_per_socket": 1, "count": 1, "hot_add_enabled": 0, "hot_remove_enabled": 0}, "disks": {"16000": {"backing": {"type": "VMDK_FILE", "vmdk_file": "[local] test_vm1/rhel-8.5.vmdk"}, "capacity": 16106127360, "label": "Hard disk 1", "sata": {"bus": 0, "unit": 0}, "type": "SATA"}, "16001": {"backing": {"type": "VMDK_FILE", "vmdk_file": "[local] test_vm1_1/second_disk.vmdk"}, "capacity": 32000000000, "label": "Hard disk 2", "sata": {"bus": 0, "unit": 1}, "type": "SATA"}}, "floppies": {}, "guest_OS": "RHEL_7_64", "hardware": {"upgrade_policy": "NEVER", "upgrade_status": "NONE", "version": "VMX_11"}, "identity": {"bios_uuid": "4231943a-a1b5-9d24-1e05-d447e9ff0396", "instance_uuid": "5031e081-01a7-d61a-31f8-4bc54057ec60", "name": "test_vm1"}, "instant_clone_frozen": 0, "memory": {"hot_add_enabled": 1, "size_MiB": 1024}, "name": "test_vm1", "nics": {"4000": {"allow_guest_control": 0, "backing": {"network": "network-1041", "network_name": "VM Network", "type": "STANDARD_PORTGROUP"}, "label": "Network adapter 1", "mac_address": "00:50:56:b1:22:7d", "mac_type": "ASSIGNED", "pci_slot_number": 160, "start_connected": 0, "state": "NOT_CONNECTED", "type": "VMXNET3", "upt_compatibility_enabled": 0, "wake_on_lan_enabled": 0}}, "nvme_adapters": {}, "parallel_ports": {}, "power_state": "POWERED_OFF", "sata_adapters": {"15000": {"bus": 0, "label": "SATA controller 0", "pci_slot_number": 32, "type": "AHCI"}}, "scsi_adapters": {}, "serial_ports": {}}

Authors

  • Ansible Cloud Team (@ansible-collections)