community.vmware.vmware_guest_move – Moves virtual machines in vCenter
Note
This plugin is part of the community.vmware collection (version 1.7.0).
To install it use: ansible-galaxy collection install community.vmware.
To use it in a playbook, specify: community.vmware.vmware_guest_move.
Synopsis
- This module can be used to move virtual machines between folders.
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 move operation | |
| dest_folder  string / required  | Absolute path to move an existing guest The dest_folder should include the datacenter. ESX's datacenter is ha-datacenter. This parameter is case sensitive. Examples: dest_folder: /ha-datacenter/vm dest_folder: ha-datacenter/vm dest_folder: /datacenter1/vm dest_folder: datacenter1/vm dest_folder: /datacenter1/vm/folder1 dest_folder: datacenter1/vm/folder1 dest_folder: /folder1/datacenter1/vm dest_folder: folder1/datacenter1/vm dest_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_HOSTwill be used instead.Environment variable support added in Ansible 2.6. | |
| moid  string  | 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  nameoruuidis not supplied. | |
| name  string  | Name of the existing virtual machine to move. This is required if  uuidormoidis not supplied. | |
| name_match  string  | 
 | If multiple virtual machines 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_PASSWORDwill be used instead.Environment variable support added in Ansible 2.6. aliases: pass, pwd | |
| port  integer  | 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_PORTwill be used instead.Environment variable support added in Ansible 2.6. | 
| proxy_host  string  | 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_HOSTwill be used instead.This feature depends on a version of pyvmomi greater than v6.7.1.2018.12 | |
| proxy_port  integer  | 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_PORTwill be used instead. | |
| use_instance_uuid  boolean  | 
 | 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_USERwill be used instead.Environment variable support added in Ansible 2.6. aliases: admin, user | |
| uuid  string  | UUID of the virtual machine to manage if known, this is VMware's unique identifier. This is required if  nameormoidis not supplied. | |
| validate_certs  boolean  | 
 | Allows connection when SSL certificates are not valid. Set to  falsewhen certificates are not trusted.If the value is not specified in the task, the value of environment variable  VMWARE_VALIDATE_CERTSwill be used instead.Environment variable support added in Ansible 2.6. If set to  true, please make sure Python >= 2.7.9 is installed on the given machine. | 
Notes
Note
- Tested on vSphere 5.5 and vSphere 6.5
Examples
- name: Move Virtual Machine
  community.vmware.vmware_guest_move:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: datacenter
    name: testvm-1
    dest_folder: "/{{ datacenter }}/vm"
  delegate_to: localhost
- name: Move Virtual Machine using MoID
  community.vmware.vmware_guest_move:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: datacenter
    moid: vm-42
    dest_folder: "/{{ datacenter }}/vm"
  delegate_to: localhost
- name: Get VM UUID
  vmware_guest_facts:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter }}"
    folder: "/{{ datacenter }}/vm"
    name: "{{ vm_name }}"
  delegate_to: localhost
  register: vm_facts
- name: Get UUID from previous task and pass it to this task
  community.vmware.vmware_guest_move:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter }}"
    uuid: "{{ vm_facts.instance.hw_product_uuid }}"
    dest_folder: "/DataCenter/vm/path/to/new/folder/where/we/want"
  delegate_to: localhost
  register: facts
   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': None, 'current_snapshot': None, 'customvalues': {}, 'guest_consolidation_needed': False, 'guest_question': None, 'guest_tools_status': None, 'guest_tools_version': '0', 'hw_cores_per_socket': 1, 'hw_datastores': ['LocalDS_0'], 'hw_esxi_host': 'DC0_H0', 'hw_eth0': {'addresstype': 'generated', 'ipaddresses': None, 'label': 'ethernet-0', 'macaddress': '00:0c:29:6b:34:2c', 'macaddress_dash': '00-0c-29-6b-34-2c', 'summary': 'DVSwitch: 43cdd1db-1ef7-4016-9bbe-d96395616199'}, 'hw_files': ['[LocalDS_0] DC0_H0_VM0/DC0_H0_VM0.vmx'], 'hw_folder': '/F0/DC0/vm/F0', 'hw_guest_full_name': None, 'hw_guest_ha_state': None, 'hw_guest_id': 'otherGuest', 'hw_interfaces': ['eth0'], 'hw_is_template': False, 'hw_memtotal_mb': 32, 'hw_name': 'DC0_H0_VM0', 'hw_power_status': 'poweredOn', 'hw_processor_count': 1, 'hw_product_uuid': '581c2808-64fb-45ee-871f-6a745525cb29', 'instance_uuid': '8bcb0b6e-3a7d-4513-bf6a-051d15344352', 'ipv4': None, 'ipv6': None, 'module_hw': True, 'snapshots': []} | 
Authors
- Jose Angel Munoz (@imjoseangel)
    © 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.11/collections/community/vmware/vmware_guest_move_module.html