Short tip: Deploy OVA/OVF templates using OVF Tool
Recently I had massive problems with deploying some VMware appliances under vSphere 6.5. Independently of the frontend (Host Client, HTML 5 Client, Web Client, C# Client) I was unable to deploy templates in a clean way at all - mostly aborts and "generic system failures" occured.
Mark Brookfield gave me the tip to use OVF Tool instead of a graphical interface. The console utility focusses at importing/exporting OVA/OVF templates between multiple VMware products and is available for Microsoft Windows, Linux und App macOS erhältlich. The tool can be downloaded for free.
Basically, it is executed like this:
1$ ovftool [parameter] source target
Major parameters (some are optional) are:
|-n / --name||Target VM name|
|-vf / --vmFolder||Folder for storing the VM|
|--acceptAllEulas||Automatically accept EULA|
|-ds / --datastore||Target datastore|
|-dm / --diskMode||Disk provisioning mode (for vSphere: thin, thick or eagerZeroedThick)|
|--net:NIC-name:portgroup||Network binding (portgroup is mapped to NIC name)|
|--ipProtocol||IP protocoll: IPv4, IPv6|
|--prop||Assigning an OVA/OVF parameter (e.g. Root password)|
|--deploymentOption||Selecting a vApp configuration (if supported by template)|
|--powerOn||Turning on VM after provisioning|
The target locator needs to have a specific schema I was not aware of at first sight. Some examples for vSphere:
|vi://myvcenter/mydatacenter/host/mycluster||Arbitrary host of a dedicated datacenter and cluster|
|vi://admin:admin@myvcenter/mydatacenter/host/mycluster||like above, but with fixed login information|
|vi://myvcenter/mydatacenter/vm/myfolder/myvm||Arbitrary datacenter, VM folder and name|
|vi://myvcenter/mydatacenter/host/myesx||Arbitrary ESXi host of a datacenter|
|vi://myvcenter/mydatacenter/host/myesx/Resources/myresource||like above, but with arbitrary resource pool|
Additional examples can be found in the utility online help:
1$ ovftool -h | less 2$ ovftool -h locators | less 3$ ovftool -h examples | less
The OVA/OVF source does not need to be stored on the local hard drive, it can also be downloaded from a web server (http://path, https://path) or FTP server (ftp://pfad).
Before deploying a template, it is a good idea to have a look at the available options. For example, this is required to get information about required network interfaces:
1$ ovftool --hideEula VMware-vSAN-Witness-201704001-5310538.ova 2... 3Networks: 4 Name: Management Network 5 Description: Management Network will be used to drive witness vm traffic 6 7 Name: Witness Network 8 Description: Witness Network will be used to drive witness vm traffic
In this case, valid assignments for the Management Network and Witness Network need to be made. Afterwards, check-out the available properties:
1... 2Properties: 3 ClassId: vsan 4 Key: witness.root.passwd 5 Label: Root password 6 Type: password(7..) 7 Description: Set password for root account. 8...
Some are required - like the root password in this example - some are optional. Some OVA/OVF templates also offer deployment options; also called "t-shirt sizes":
1Deployment Options: 2 Id: tiny 3 Label: Tiny (10 VMs or fewer) 4 Description: Configuration for Tiny vSAN Deployments with 10 VMs or fewer 5 6 * 2 vCPUs 7 * 8GB vRAM 8 * 1x 12GB ESXi Boot Disk 9 * 1x 15GB Magnetic Disk 10 * 1x 10GB Solid-State Disk 11 * Maximum of 750 Components 12 13 Id: normal (default) 14 Label: Medium (up to 500 VMs) 15 Description: Configuration for Medium vSAN Deployments of up to 500 VMs 16 17 * 2 vCPUs 18 * 16GB vRAM 19 * 1x 12GB ESXi Boot Disk 20 * 1x 350GB Magnetic Disk 21 * 1x 10GB Solid-State Disk 22 * Maximum of 22K Components 23 24 Id: large 25 Label: Large (more than 500 VMs) 26 Description: Configuration for Large vSAN Deployments of more than 500 VMs 27 28 * 2 vCPUs 29 * 32GB vRAM 30 * 1x 12GB ESXi Boot Disk 31 * 3x 350GB Magnetic Disks 32 * 1x 10GB Solid-State Disk 33 * Maximum of 45K Components
This template offers three fixed configuration sizes - the requirements and use-cases are explained.
The completed commands can look like this:
1$ ovftool --acceptAllEulas -ds=NFS-Backup --net:"Management Network"="DPortGroup-MGMT" --net:"Witness Network"="DPortGroup-VSAN" --prop:witness.root.passwd=... --deploymentOption=tiny VMware-vSAN-Witness-201704001-5310538.ova vi://st-vcsa03.stankowic.loc/Stankowic/host/Darmstadt/ 2Opening OVA source: VMware-vSAN-Witness-201704001-5310538.ova 3The manifest validates 4Source is signed and the certificate validates 5Enter login information for target vi://st-vcsa03.stankowic.loc/ 6Username: firstname.lastname@example.org 7Password: ... 8Opening VI target: vi://email@example.com:443/Stankowic/host/Darmstadt/ 9Deploying to VI: vi://firstname.lastname@example.org:443/Stankowic/host/Darmstadt/ 10Transfer Completed
If you are receiving an warning such as:
1Warning: 2- OVF property with key: 'witness.root.passwd' does not exists.
You might want to have a look at the vApp options pane in the VM configuration. There might be a missing parameter you want to fix before turning on the appliance.
Using the tool I was finally able to deploy additional vApps in my home lab - too bad, that this did not work using one of the plenty frontends. I don't know whether the root cause for this issue is based in my lab or if it is just an generic issue (bug?). Really need to dig deeper regarding this...