vRealize Automation 7.X (vRA) Custom Forms

 

If it has an open API the sky is the limit. vRealize Automation (vRA) 7.3 allows for many out of the box integrations that make it easy for customers to consume a fully featured enterprise automation platform.  VMware NSX, VMware vRealize Operations Manager, Puppet, Infoblox, VMware Integrated OpenStack (VIO), AWS, and Azure are just a few of the many out of the box integrations available in vRA.  For integrations beyond what comes ‘out of the box’, vRA leverages vRealize Orchestrator (vRO) as an extensibility and customization engine transforming vRA into an all encompassing, robust automation platform.

VMware Solutions Exchange is a great place to understand the full scope of pre-packaged vRO plugins including Veeam, F5, Chef, Cisco UCS, Bluetcat, IBM, and HPE to name a few. These pre-packaged plugins come with built-in API calls that allow you to automate a vast number of administrative tasks on market leading software and hardware platforms. Even if a plugin doesn’t exist, vRO has the capability of adding a REST or SOAP host and making API calls to that host. With the proliferation of open APIs across IT assets and even household consumer devices, the possibilities are truly endless.

One of my customer’s who has vCloud Director 5.5 (vCD) in production, which went End of Support (EOS) on September 9, 2017,  is looking at potential vCD replacements that meet their business requirements. The customer would like to provide a simple form giving end users the ability to choose OS type(s), lease times per OS, and number of machines per OS to be deployed, completely isolate each deployment and, with the click of a button, automatically deploy the secure VMs. App Isolation is a feature of NSX and is configured at the blueprint level. More on how NSX and vRA integration works here.

To that end, I’ve developed a vRO workflow that meets these requirements and in this blog post I’ll walk you through how to deploy this solution in your own environment. In true Great Demo fashion let’s start with the end and show you the finished product. Isn’t she a beauty?

Screen-Shot-2018-01-11-at-3.51.18-PM.png

Now let’s get to it!

It’s important to note that you can also accomplish something similar with composite blueprints. However, this route introduces embedded options, more choices, and more perceived complexity to the end-user which the customer is keen on avoiding.

Disclaimer: These workflows are created for proof of concept purposes only. They should not be used in production and do not come with any warranty. Use at your own risk. 

This solution was tested in a lab with the below components:

  • ESXi 6.5

  • vCenter 6.5

  • vRealize Automation 7.3 (Simple Install)

  • vRA blueprints including Ubuntu, Windows Server 2016, CentOS, and Debian

  • Embedded vRealize Orchestrator  7.3

Below are the high level steps

  1. Add vRA as a host in vRO

    • Make sure you can view your target blueprints from vRO

  2. Download and import the vRO package

  3. Point the workflow to your desired vRA blueprints

  4. Download the Multi OS vRA blueprint and import the blueprint to your vRA Instance using the vRA CloudClient

  5. Publish and entitle the blueprint

  6. Test

 

Step 1: Add vRA as a host in vRO

First check to make sure vRA isn’t already added to vRO. Let’s head to the vRO client and login. Once logged in make sure you’re in ‘Design’ mode and click on the ‘Inventory’ tab. If you’re able to see your vRA Catalog items from vRO like the screenshot below, move to step two, if not, follow the below instruction in step 1 to add vRA as a host in vRO.

 

NOTE: If you don’t see the catalog items under the default vRO host in vRO, do not attempt to “Update the Host” and change the credentials as this might have adverse effect on your environment. Always add a new host as the below instructions dictate.

design-mode.png

Make sure you’re in ‘Design’ mode and see the folder hierarchy.

config.png

Navigate to Library>vRealize Automation>Configuration folder

Right click on the “Add a vRA host’ workflow and click ‘Start workflow’

Input a ‘Host Name’ of your choosing and enter the vRA appliance URL in the ‘Host URL’ field, leave the rest as default, and click ‘Next’

In the ‘Host Authentication’ screen leave ‘Shared Session’ as the ‘Session Mode’ and input ‘Tenant’,’Authentication username’, and ‘Authentication password’ and click ‘Submit.’

start.png

Note: You need to user the username@domain format and the user select need catalog item entitlements in vRA

The default tenant is normally vsphere.local

 

Step 2: Download and import the vRO Workflow

Download the vRO package >

git.png

Extract the contents to a directory on your local machine

Switch the vRO instance to ‘Run’ mode and make sure you’re in the ‘Home’ tab

run-mode.png

Click on ‘Import package’ from the ‘Today’ tab and browse to the extracted file and click open

Click Import

On the next screen click “Import Selected Elements”

  • NOTE: The “requestcatalogitemwithprovisioningrequest” action may already be part of your vRO environment and may not need to be imported.

import.png

Now switch to ‘Run’ mode in vRO and click on the ‘workflows’ icon and find the ‘vRAMultiOS’ folder. In that folder you should see two workflows. The ‘Get JSON Output from BP’ workflow and the ‘Multi OS vRA’ workflow.

vramos.png

Step 3: Point ‘Multi OS vRA’ to the in scope vRA blueprints

With the ‘Multi OS vRA’ workflow selected click on the pencil icon at the top of the screen to edit the workflow

  • Note: This workflow is configured to point to  CentOS, Windows Server 2016, Debian, and Ubuntu blueprints. If you need to add additional blueprints you’ll need to edit the workflow to incorporate the new blueprints. 

blueprint.png

In the ‘General’ tab under ‘Attributes’ click the value field for each catalog item not defined and navigate to its respective blueprint as pictured below.

  • Note: Only do this for the Attributes named ‘CatalogItemCentos’, ‘CatalogItemUbuntu’, ‘CatalogItemW2016, and ‘CatalogItemDebian.’ Leave the Attribute ‘catalogitem’ blank as we’ll use this in the workflow.

attributes.png

Step 4: Download and import the Multi OS Blueprint

Download the Multi OS vRA blueprint >

git2.png

Follow instructions to connect to vRA via the CloudClient >

cloudclient-instructions.png

Once connected logged in to the CloudClient run the below command to import the downloaded blueprint

  • vra content import –path FILEPATH –resolution OVERWRITE –precheck WARN –verbose

  • NOTE: The dashes above are really double dashes. Good ole html.

html.png

Step 5: Publish and Entitle the Blueprint

In vRA navigate to the ‘XaaS Blueprints’ under the design tab

Highlight the Multi OS blueprint and click on ‘Publish’ near that top of your screen

xaas.png

Then head to ‘Administration>Catalog Items’ and open the Multi OS blueprint

In last field choose the ‘Server’ you’d like this blueprint to appear under

You should now see the Multi OS blueprint listed under the ‘Catalog’ tab

Screen-Shot-2018-01-11-at-10.31.41-PM.png

Step 6: Test, Test, Test

You’ve made it to the end. Great work! Don’t forget to leave some feedback in the below comments.

 
Felix Vargas