SQL Plug-in + DynamicTypes = Simple CMDB for vCAC - Part 3

Welcome back! This is the third article of a multi-part series that steps you through the process of exposing our workflows from the last article to vRealize Automation’s (vRA) Advanced Service Designer (ASD).

Introduction

This third article will cover the following topics:

  • How to add the simple CMDB to vRealize Automation’s Advanced Service Designer
  • Add a Day 2 operation to delete an Asset from our table

Future article will cover the following topic:

  • How to add entries to the CMDB via vRealize Automation Infrastructure as a Service (IaaS) workflow

Let’s get started - Login to vRA with your Tenant Admin credentials. (NOTE: Be sure that your account has the “Application Architect” role assigned since you will need to have the “Advanced Services” tab available to you in vRA.)

Advanced Services - Custom Resource

Custom Resources map to vRealize Orchestrator Inventory Object types. In the previous articles of this series, we introduced a new Object Type named DynamicTypes:MyCMDB.Asset. We must add this to vRA so that the object is something that can be requested and, more importantly, managed. By managed, I mean that it will be a provisioned resource that is visible on your Items tab in vRA and can have Day 2 operations assigned to it.

Add Resource

add_resource.png
  • In vRA, navigate to Advanced Services -> Custom Resources
  • Click on the Add button to add the new Custom Resource
  • When the page loads, enter “DynamicTypes” in the Orchestrator Type field - you should see a number of object types populate
  • Select the “DynamicTypes:MyCMDB.Asset” entry as shown in the screenshot above
  • Provide a Name as you wish it to appear in vRA
  • Optionally provide a Description and Version
  • Click Next

NOTE: If you have just added new Dynamic Types to the Orchestrator server that vRA is using, they may not show here right away. If this is the case, you can force vRA to “refresh” its view of available DynamicType objects by:

  • Go to Administration -> Advanced Services -> Server Configuration
  • Change your server configuration from one option to the other (for example, if set as “Use the default Orchestrator server,” change to “Use an external Orchestrator server” and vice-versa. Even if you have a single Orchestrator, that is fine - just change between default/external or external/default) - Click Update
  • Now change back to your original setting and click Update
  • This process essentially reconnects vRA to the Orchestrator API and refreshes the list of available DynamicTypes Object Types

Add Resource - Details Form

add_resource_-_details_form.png

There is no need to change any fields here as they are not displayed to your users. Just click the Add button.

Now that vRA understands what a MyCMDB.Asset is, we need to provide a means for the users to actually request it. This means we need a Service Blueprint.

Service Blueprint - Workflow

service_blueprint_-_workflow.png
  • Click on the Service Blueprints link on the left of your vRA page (still on the Advanced Services tab)
  • Click the Add button to define a new Service Blueprint
  • Expand out your Orchestrator server and locate your Create a Record workflow created in the previous article
  • Select it and click Next

Service Blueprint - Details

service_blueprint_-_details.png

The Name and Description on this page are what your users will see when viewing the Catalog so make these user-friendly.

  • Change the Name field “Create a Record” to something like “Add an Asset” or “Request an Asset” or whatever is to your liking. For this tutorial, I will change it to “Add an Asset”
  • If you wish to hide the catalog request information page (typically not needed), place a check in the box
  • Optionally add Version info (NOTE: If adding Version, must be in format of major.minor.micro[-revision] for example 1.0.0 OR 1.0.1-1)
  • Click Next

Service Blueprint - Blueprint Form

service_blueprint_-_blueprint_form.png

The Blueprint Form is the actual form your users will fill out after they click on the Request button of the Catalog entry.

You may leave the form as-is or customize the Display name of the inputs and/or hide or set default values. At the very least, be sure to mark your required inputs as described in the “NOTE” below. Notice how the two “Required” fields are indicated with a red *. NOTE: VERY IMPORTANT - The fields you specified as ID and NAME (in my case, Serverid and Servername respectively) MUST be filled out in order for the DynamicTypes to work properly. Failure to enforce this will result in a broken inventory. During the workflow creation in vRO, we specified these two fields as being mandatory but this input property did not carry over to the form designer. It is highly recommended to:

  • Mouse-over the Servername input field, then click the edit icon (pencil) that appears to the far right
  • Click on the “Constraints” tab of the pop-up window, then change “Required” to “Constant” with a value of “Yes”, then click Submit
  • Repeat the steps above for the Serverid input

Click Next when done modifying the form

Service Blueprint - Provisioned Resource

service_blueprint_-_provisioned_resource.png

In some cases, you may want to allow vRA to present a request form that runs an Orchestrator workflow that does not result in a provisioned/manageable resource. However, this tutorial is not one of those cases. We want the result of a request to be visible in our Items tab so we must identify a Custom Resource that will be created when the workflow has been completed.

  • Click the Drop-down box and select the “assetOut[Asset]” entry. This is the Output field of the workflow we selected. We can choose it here because it has the same type as a Custom Resource we defined earlier in this article.
  • Click Add

Service Blueprints - Publish

service_blueprints_-_publish.png

Once a Service Blueprint has been created, it is immediately placed in “Draft” status. This means it will not be available as a catalog item to be assigned to services. Before navigating away from this page:

Select the “Add an Asset” row, then click the Publish button

Confirm that the Status of that row changes to Published

We still need to Add this Service Blueprint/Catalog Item to a Service so that it may be entitled, but let’s go ahead and add our Day 2 operation while we’re still in the Advanced Services tab first.

Day 2 Operation - Delete Record

day_2_operation_-_delete_record.png

Click Resource Actions, then click the Add button to create a new one.

This time for Select a Workflow, select your Delete a Record workflow and click Next

Day 2 Operation - Input Resource

day_2_operation_-_input_resource.png

The Resource type and Input parameter should already be selected as “Asset” and “asset” respectively so click Next

Day 2 Operation - Details

day_2_operation_-_details.png

The Name specified here is what users will see as an avaialble action for the selected resource.

  • Change the value to something appropriate. For the purpose of this article, I will change mine to Delete Asset
  • You may optionally Hide the catalog request information page ( I will ) as well as set a Version
  • For Type, be sure to tick the Disposal field so that vRA knows that the provisioned Item is being disposed
  • Leave Target Criteria as the default
  • Click Next

Day 2 Operation - Form

day_2_operation_-_form.png

Although the workflow input is already set for the Asset, it may be a good idea to provide some text here as a warning.

Scroll to the bottom of the left pane until you see the “Form” section.

Drag a “Text” piece to the right pane where it says “Drag an item from the palette”

Click the Edit (pencil) icon for the Text, change the Size to Large, and for text enter your warning text.

Click Add when done (when prompted for the empty form action, click OK)

Resource Action - Publish

resource_action_-_publish.png

Like the Service Blueprint, the default status of a newly created Resource Action is Draft so select it and click Publish.

Services / Entitlements

services__entitlements.png

Okay, so we have a new Service Blueprint/Catalog Item and a Resource Action, and they’re both published, but at this point nobody can request or do anything with the Asset. The final steps to get this functional are to:

  • Add the Catalog Item to a Service
  • Entitle the Service (if new) and Resource Action

To keep this new offering separate from my existing services (IaaS, PaaS, and SaaS), I will create a new Service called CMDB

Under Administration -> Catalog Management -> Services, click Add to create a new service named CMDB and Activate it.

Select your newly created Service (or an existing one if you already have one to use)

Click the “Manage Catalog Items” button

Services - Manage Catalog Items

services_-_manage_catalog_items.png

Click the Green + to add Catalog Items to this service

When the pop-up window appears, select the “Add an Asset” item we created earlier in this article (If it does not show, perhaps you forgot to Publish it)

Click Add when done

Entitlement

entitlement.png

If you have an existing Entitlement you wish to use, go ahead and add the Catalog item and Resource action to that Entitlement.

Navigate to Administration -> Catalog Management -> Entitlements , then click the Green +Add button to create a new Entitlement if not using an existing one.

Give your new Entitlement a meaningful name, I’ve chosen “CMDB Entitlement”

Set the status Active

Select the Business Group you wish to entitle the CMDB services to, I’ve chosen “RP PreProd Group”

Finally, Select one or more Users & Groups - you’ll need to type a name and press Enter to see the selection list show

Click Next when done

Entitlement - Items & Approvals

entitlement_-_items___approvals.png

On the Items & Approvals tab, you can specify which Services, Catalog Items (if not assigned to a Service), and Actions to include in the Entitlement. You can optionally specify an approval policy for each as well.

Next to “Entitled Services”, click the Green +, then select the recently created Service “CMDB”

Next to “Entitled Actions”, click the Green +, then select the recently created action “Delete Asset”

Click Add

Catalog - CMDB

catalog_-_cmdb.png

You are now ready to test the solution!

  • Be sure you are logged in with an account that has been entitled and click on the Catalog tab, then selct your CMDB services group
  • Click Request on the Add an Asset Catalog Item

Catalog - New Request

catalog_-_new_request.png

Fill out the form as desired and click submit!

Items - Dynamic Types

items_-_dynamic_types.png

Click on the Items tab

(If you don’t immediately see your requested item, give it a moment, then cick the Refresh icon at the bottom of the window

Select the row of your new item, then click the Actions button - a list of all your Day 2 operations/Resource Actions that have been entitled for you on this object type will be shown - Don’t click Delete yet!

Click the View Details button or the Name of your item to view the item details.

Item Details

item_details.png

On the details page, you can see more information on the request.

On the right-side of the screen, all entitled Resource Actions for the object type provisioned will be shown.

Go ahead and click on the Delete Asset link now.

Delete Asset

delete_asset.png

Notice how the warning text we provided earlier is now shown.

Click Submit to delete the provisioned item.

It will take a minute or so for the item to be gone from vRA. If desired, click the Refresh button at the bottom of the page to verify the item has been deleted.

vRealize Orchestrator - Completed Workflows

vrealize_orchestrator_-_completed_workflows.png

During the course of this article, we Requested an Asset and later deleted it. The engine behind the Request/Delete operations was Orchestrator and the workflows we created in a previous article.

If you log into your Orchestrator client and check your “Create a Record” and “Delete a Record” workflows, you will see completed workflows as shown above.

Wrapping up

This concludes the third article in the series.

Previous Articles in series:

  1. SQL Plug-in + DynamicTypes = Simple CMDB for vCAC - Part 1
  2. SQL Plug-in + DynamicTypes = Simple CMDB for vCAC - Part 2