VMware’s OVFtool is a command line tool that allows you to convert VMware Virtual Machines to Open Virtualization Format, or OVF. In the latest version, it can also upload VMs to vCloud Director for you as well!
To do this, OVFtool simply requires a source (VMX or OVF), and a destination (a vCloud Locator).
The vCloud locator looks something like this:
As you can see, the vCloud Locator is a URL with all of the information needed to upload your OVF.
Because OVFtool is run from the command line, the simple choice when using Windows is to use the command prompt. Using the Windows command prompt, however, results in errors when uploading to vCloud Director:
This is most likely because of the special characters ovftool uses in the URL (&, :, ?, @). If I had to guess, I’d say it’s the ampersand.
I tried quoting out the vCloud Locator several different ways to get it to understand, but resorted to Powershell to save the day once again.
$vCloudLocator = "vcloud://jake:email@example.com:443?org=jake&vappTemplate=MyTemplate&catalog=private" $sourceFile = "C:\jake\MyVM.vmx" $ovftool = "C:\Program Files\VMware\VMware OVF Tool\ovftool.exe" & $ovftool $sourceFile $vCloudLocator
Powershell treats the characters are part of the string, so we just simply pass the string as a parameter to OVFtool.
Hope this saves someone a headache!
For more OVFtool fun, check out my post on using OVF tool with PowerCLI with your vSphere session!