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?
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
Add vRA as a host in vRO
Make sure you can view your target blueprints from vRO
Download and import the vRO package
Point the workflow to your desired vRA blueprints
Download the Multi OS vRA blueprint and import the blueprint to your vRA Instance using the vRA CloudClient
Publish and entitle the blueprint
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.
Make sure you’re in ‘Design’ mode and see the folder hierarchy.
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.’
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
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
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.
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.
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.
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.
Step 4: Download and import the Multi OS Blueprint
Follow instructions to connect to vRA via the CloudClient >
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.
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
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
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.