The VMware Cross vCenter VM Mobility – CLI was recently updated so I decided to try it out. In short, this little Java based application allows you to easily move or clone VMs between disparate vCenter environments.
The Fling is listed with the following requirements:
- JDK 1.7 or above
- Two vCenter instances with ESX 6.0
- Windows : Windows Server 2003 or above
- Linux : RHEL 7.x or above, Ubuntu 11.04 or above
There is no mention of macOS there, but I decided to give it a go any way, and it turns out that it works just fine on macOS as well!
Just make sure you have the Java JDK installed locally. When I ran it the first time, I got the following error, since the JAVA_HOME environment variable was not set.
set JAVA_HOME to continue the operation
This is very easy to fix, just run the following command in your terminal of choice, and xvc-mobility.sh should work just fine on your Mac.
Next up is running the fling with the correct parameters (this is a clone operation, not a relocate):
-dvc [destination-vcenter] -du [destination-vcenter-username]
-vms [vm-name] -dh [destination-host]
-dds [destination-datastore] -op clone -cln [destination-vm-name]
13:41:40.591 [main] INFO com.vmware.sdkclient.vim.Task - CloneVM_Task | State = SUCCESS | Error = null | Result = com.vmware.vc.ManagedObjectReference@d9a221a7
13:41:40.597 [main] INFO com.vmware.sdkclient.vim.Task - Monitor task end
13:41:40.597 [main] INFO com.vmware.sdkclient.vim.Task - CloneVM_Task took : 0:51:33.728
13:41:40.603 [main] INFO c.v.s.helpers.CrossVcProvHelper - Successfully cloned the vm:[destination-vm-name]
I was able to clone a VM from my lab in Bergen to my lab in Oslo, without any problems what-so-ever. Not only is that a Cross vCenter vMotion, but also a Cross Country one, awesome!
Now this is just an example, please check the official documentation for all the parameters, and what the tool expects.