Aria Automation Cloud(aka VRA): How to deploy vSphere Replication 8.x as Self Service Catalog Item

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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: