
vRealize Automation 8
Traditionally, the creation of a VM is done cloning either a vSphere Template, GCP Machine Image or an AWS AMI. vRA 8 also supports creating VM’s from OVA/OVF. An OVA is a way of packaging a virtual machine in an open standard, much like you can create an ISO of a CD. Here are some more information around OVA/OVF
The fact that we are using a OVA, and also get the OVA properties, we must create a “Image Mapping”, a “shortcut” to the OVA image

Give the “Image Mapping” a name, specify the “Account / Region” and the URL to the OVA. This requires the OVA to be on a web server. If everything is configured correct then there’s a button showing on the right. Click that button to see the OVA properties. Remember to save the “Image Mapping”

Copy all properties for lates use

Create a new blueprint, give it a name and specify the “Project” to be used. In my example I ad a “vSphere Network” and use “constraints” to control what network to use.

As an “image:” I use the newly created “Image Mapping”, MariaDB-OVA, and I also increase the memory and CPU’s from the default 1 CPU and 1024 Mb memory. The fact that I’m having a “Network Profile” available I can then set the IP address assignment to “static”

Now it’s time to paste all the OVA properties. You can always hard code IP address, default gateway, etc but using object and their values within the blueprint makes it more usable in different network environments.


Now you can create a deployment of that blueprint that we’ve just created. You can then look in vCenter for the vApp Option to see if they are populated correctly.

The whole blueprint as code
formatVersion: 1
inputs: {}
resources:
Cloud_vSphere_Machine_1:
type: Cloud.vSphere.Machine
properties:
image: MariaDB-OVA
ovfProperties:
- key: network.dns
value: 172.16.100.4
- key: network.domain
value: '${resource.Cloud_vSphere_Network_1.domain}'
- key: network.gateway
value: '${resource.Cloud_vSphere_Network_1.gatewayAddress}'
- key: network.ip0
value: '${self.networks.address[0]}'
- key: network.netmask0
value: '${resource.Cloud_vSphere_Network_1.netmask}'
- key: network.searchpath
value: vmlab.se
- key: user-data
value: ''
- key: va-ssh-public-key
value: ''
cpuCount: 4
totalMemoryMB: 8192
networks:
- network: '${resource.Cloud_vSphere_Network_1.id}'
assignment: static Cloud_vSphere_Network_1:
type: Cloud.vSphere.Network
properties:
networkType: existing
constraints:
- tag: 'network:mbergman'