In this Article we will go through how we can utilise Aria Automation Cloud(vra) to deploy vSphere Replication 8.x as self service Catalog Item.
before we get this let see what is vSphere Replication is ….
VMware vSphere Replication is an extension to VMware vCenter Server, and you can use it as an alternative to storage-based replication. With VMware vSphere Replication, you can protect your virtual machines from partial or complete site failure by replicating the virtual machines between two or multiple sites, or within the same site You can find more details from VMware Doc.
High Level Steps:
* Download the Ovf/OVA and place into web server.
* Configure Cloud Template/Blueprint and Release the version.
* Create Python ABX action for hostname – Environment specific task
* Create Subscription to provide the Hostname once generated.
* Deploy vSphere Replication from Service Broker.
Note:
This is a known limitation. Aria Automation cloud does not support provisioning OVAs with OVF properties from Content Library. It only supports provisioning content library OVA/OVFs that do not require OVF properties.
as Workaround I have hosted the OVA into web server which does not require authentication ,
I would assume reader of this article know how to host ovf or ova on web server , so I will start from other steps.
Cloud Template:
formatVersion: 1
inputs:
varoot-password:
type: string
title: Root Password
default: VMware1!
vaadmin-password:
type: string
title: Admin Password
default: VMware1!
resources:
vR_Network:
type: Cloud.vSphere.Network
properties:
networkType: existing
vSphere_replication:
type: Cloud.vSphere.Machine
properties:
imageRef: 'url.ovf'
cpuCount: 2
totalMemoryMB: 4096
ovfProperties:
- key: varoot-password
value: ${input.varoot-password}
- key: vaadmin-password
value: ${input.vaadmin-password}
- key: network.searchpath.vSphere_Replication_Appliance
value: ${resource.vR_Network.domain}
- key: network.DNS.vSphere_Replication_Appliance
value: ${to_string(resource.vR_Network.dns[0])},${to_string(resource.vR_Network.dns[1])}
- key: network.domain.vSphere_Replication_Appliance
value: ${resource.vR_Network.domain}
- key: network.netmode.vSphere_Replication_Appliance
value: static
- key: network.ip0.vSphere_Replication_Appliance
value: ${self.networks[0].address}
- key: network.gateway.vSphere_Replication_Appliance
value: ${resource.vSphere_replication.networks[0].gateway}
- key: network.netprefix0.vSphere_Replication_Appliance
value: '${to_string(resource.vR_Network.netmask) == "255.255.252.0" ? "22" : "24"}'
networks:
- network: ${resource.vR_Network.id}
assignment: static
Line number 19 : We need to provide the ova or ovf url .
Line Number 30: I have 2 DNS server that is why I am looking for 2 index in yaml, if you have one then you can do only first part
Line number 40 : Since I have 2 subnet mask I am doing conditioning logic If network profile return 255.255.252.0 then value we pass to ovf is 22 , if network profile returned 255.255.255.0 then it would be 24.
Once we have created the cloud template and release. , Next step would be Python ABX action which would give us Hostname details ,
Note: This is environment specific task , As per my Environment Hostname and IP records are created automatically whenever we allocated the static IP from Aria automation Cloud .
Python ABX Action
import socket
def handler(context, inputs):
output = {}
output = inputs
ipaddress = inputs['customProperties']['ovf.prop:network.ip0.vSphere_Replication_Appliance']
hostname = socket.gethostbyaddr(ipaddress)
output['customProperties']['ovf.prop:vami.hostname'] = hostname[0]
return output
Here we are taking the IP address which is allocated to property then using that IP we are adding Hostname value using socket module.
Configure EBS Subscription
Subscription Name: Compute Provision

In Condition section part , reader needs to provide the blueprint Id.
If you have followed the steps here , Now you can deploy vSphere Replication product as Self Service catalog item.