vCAC /vRA Blog List

I think this list makes lot of sense. I believe lot of information is already there which can help you build the effective orchestration layer. In no specific order here is the vCAC Blogger list, I refer and love reading them.


I’m pretty sure list is going to be big. I have used all above blogs to learn vCAC product. If any blog I have missed please feel free to leave it in comment. I will update it. Idea to share the active vCAC/vRA bloggers.

Using custom property in vRA/vCAC deploy VM in specific datacenter using local templates -Post02

We discussed out of the box option in post:01. we all know it was not a practical approach. So only option best option is to use vCO (vRO). It is so easy to achieve, you would be surprised to see it. You just need to pass what datacenter string user is selecting. In my case it will be Mumbai or Pune


Using this input a “If else” statement is used to pass value back to vCAC template. Here is how the code looks below

System.log("Workflow started from workflow stub " + externalWFStub + " on vCAC host " + vCACHost.displayName);
System.log("Got vCAC virtual machine " + vCACVm.virtualMachineName);
System.log("Matching virtual machine entity " + virtualMachineEntity.keyString);
propertyNames = new Array();
propertyValues = new Array();
//var vmTemplate = vCACVmProperties.get("Datacenter.Location");
var DCName = vCACVmProperties.get("Vrm.DataCenter.Location");
System.log("This is coming from inbuild " + " " + DCName);

//Mumba DC is selected
System.log ("Mumbai");
System.log("Set template: template_mum");

//Pune DC is selected
else if(DCName=="Pune"){
System.log ("Pune");

System.log ("Pune is the DC location");
System.log("Set template: template_pnq");

In line “7” we are querying which datacenter user has selected. This is grabbed in variable DCName as represented below line.

var DCName = vCACVmProperties.get("Vrm.DataCenter.Location");

You might ask what is “Vrm.DataCenter.Location”, well it is reserved property in vCAC/vRA.

Now we have string available, I have used “if else” loop and updated custom properties. Custom properties & values are represented from line “10” to “29”. These values are passed into foreach loop for inbuilt workflow create/ update property on virtual machine Entity back to vCAC.  Then finally we use state change workflow and this time we select “BuildingMachine” state. This allows values to be updated before virtual machine provisioning starts. At the end of post, Please find attached VCO Workflow. Hope you find it useful.

Well if this is first time you are playing with VCO then follow the steps below. These only for First timers.

Copy workflow template provided in Library > vRealize Automation > Infrastructure > Extensibility to your folder/location

  1. Edit workflow, go to the schema and edit Update Property script
  2. Remove all except first three lines
  3. Create attribute as in parameter by name false and of type boolean
  4. Go to OUT tab, create two string attributes of type array
    • propertyNames
    • propertyValues


Go to visual Binding and ensure parameters are mapped as shown below.


Then go to scripting tab. Copy and paste the script mentioned above (in the code tag). You may have to change the datacenter location string. I have explain it in below image what needs to be changed.


 Now you are done with “Update Properties” where we have decide what needs to be replaced, when particular datacenter is selected.


These properties needs to updated back into blueprint. To do this we have a In-built workflow “Create / Update property on virtualMachine Entity“. Since we are updating multiple properties we will loop this workflow into foreach loop.

So first drag foreach workflow, and select Create / Update property on virtualMachine Entity then Edit workflow, go to Visual Binding, ensure things are mapped as shown below


Finally use state change workflow. However you must select life cycle stage as Building machine. Here is more information on various life cycle available. Also check here to understand how to use state change workflow. Building machine will change template based on CloneFrom property before even machine starts building.

Well, I tried my best to explain the step by step procedure in as much detail as possible, but there could be few gaps to make it simpler. If you are reading this blog post and you feel lost, comment in the post or use linkedin to reach me, I will strive to assist.

Download Workflow from here

Using custom property in vRA/vCAC to deploy VM in specific datacenter using local templates -Post01

Yeah ! Post title is big. But let me explain the use case. Customer has geographically dispersed datacenter but part of single vCenter. Customer would like to provisioning resources across geographies but wish to reduce time while provisioning across geographies. To be honest I was not aware if we can dynamically provide options to user based on the field selection. These two posts (By Jad, By Eiad Al-Aqqad ) are amazing. They explain in detailed how to achieve it. All credits for them but credit also goes to Ajit as he directed me to these posts. Let’s deconstruct the requirement. Single vCenter, two physical datacenter and local templates. And Virtual Datacenter added into vCenter.


In above figure, i have tried to simulate customer setup. Customer will be requesting VM either in Mumbai or Pune. However when he is provisioning VM in mumbai, it should use Mumbai template as it will reduce provisioning time.  So end user should be able to choose datacenter where he needs VM to deployed, which should automagically select local template in respective datacenter. Here is how the workflow below looks like


Let’s see how to achieve this. There is non-documented custom property Vrm.Datacenter.Location which will be used here. Below is the complete detailed procedure.

First make changes on vCAC-IaaS Server as explained here. Here is how my xml file looks like


Now associate the datacenter with compute resources as shown here.

Mumbai represented by Pune represented by Cluster_PNQ
 image  image

Now we need to create property definition. You can create either build profile or Property Dictionary . I preferred Property Dictionary. I have exactly followed steps mentioned by Jad. Here is how Vrm.Datacenter.Location looks like



Now datacenter part is done. We have to create value expression such that when datacenter is selected, template should be displayed.

We will be using customer property by name CloneFrom. Refer custom property link here. This property will over-ride the value defined in blueprint. So here is the CloneFrom and its value expression.



I took opportunity to use macro create by Eiad here. Automatically xml is created for you. Great work “Eiad”. Now that being done we are ready to test if things work fine.

Actually it didn’t worked. I never got any template in the drop down. And it took quite while to understand. I have to set a Property Layouts. I have to first select datacenter based on which respective template will be displayed in drop down as designed below.


NOTE: If you login into to portal as Tenant Admin you will always see Location field displayed irrespective of if you select “Display location on request” or not. However if end user logs in “Display location on request” behavior is reflected based on if checkbox is selected or not.


If you look into screen capture, by default CloneFrom is empty, so unless user selects template to be used, CloneFrom becomes null, which over-rides the property in template and provisioning fails. This was expected behavior.



If you have use cases where user must select template to start provisioning in respective datacenter this will solve your problem.

In my case I don’t want user to select template, I want user to just select datacenter and automatically respective template is selected behind the scene and VM provisioning starts. AFAIK, this behavior cannot be achieved using value expression. In order to do it you must use vCenter Orchestrator Workflow. I must admit, I’m in love with this tool. It just keep extending the possibility of what you can do. So to conclude as long as you want user choice to select template this procedure works and is perfectly fine. let’s discuss vCO Option in next post.

Using custom properties to govern Service in vRA 6.2

We all have been impressed with governance engine of vRA/vCAC. Governance is biggest advantage over vCloud Director. Approval policies are the crux of governance. I have explained in detailed approval policies in my previous post. Approval policies can have multiple level and can span across your different divisions e.g. IT, HR, Finance. These policies are little bit revised in vRA 6.2 to leverage extensibility aspect. Again this revision is brought due to customer demand. In previous release if end user has specific requirement and is requesting something, If it is not available, workflow use to end and user has to request service again with different requirement. This was especially true for custom properties. For system property it was possible to do so, however system defined property have very limited scope. Continue reading Using custom properties to govern Service in vRA 6.2

Using VCO (vRO) to drive automation for vRA (vCAC) using Custom Properties

This post in many ways a repetition of Post1, Post2 and Post3. This post is about achieving same thing using new ways. When I did these posts I was unaware of this method. It took me quite long to get along. There are few basic steps you must complete before you can use this post. There are good number blogs which are covering it.  vCAC Plug for vCO was introduced sometime back and it made thing simpler further to make vRA and vRO talk with each other. Initial steps are very well covered here. By my own admission it is pretty simple to do it. Continue reading Using VCO (vRO) to drive automation for vRA (vCAC) using Custom Properties

Bulk Import VMs into vRealize Automation (vRA/vCAC)


In the previous post we discussed consideration and steps to be taken for successful bulk import of VMs. In this post I would like to explain the procedure of importing VMs into vRA. A word of caution “The unmanaged machines are recorded during last successful data collection. Any new machines on the endpoint will not appear until next successful data collection”. By default inventory collection happens only once in a 24 hours. Continue reading Bulk Import VMs into vRealize Automation (vRA/vCAC)

Considerations while Bulk Importing VMs into vCAC/vRA

Why we need to import VMs

In 90% of the cases vRealize Automation (vRA) and formerly known as vCloud Automation vCenter (vCAC) will be a brown field deployment. Brown field environment suggest you already have virtual infrastructure in place. Post deployment of vRA, customer would naturally like to allow end users to manage their own VMs. What if customer has 1000 VMs and you need import these VMs. Very next question comes from customer  “is there a way to migrate existing VMs into vRA” Answer is of course Yes. It can be done using either Infrastructure organizer or Bulk import utility.

Bulk importing of VMs into vRA was introduced in vRA 6.1. Virtual machines which are not under vRA are referred as Unmanaged. If you would like end user to control their VMs using vRA, VMs must be imported into vRA. Such VMs are referred as Managed VMs. Continue reading Considerations while Bulk Importing VMs into vCAC/vRA

Cost Profiles in vRealize Automation

Recently I was queried on how to apply cost profile. I thought, it is super simple to do so. However when I tried in my lab, it took quite a while to find cost profiles screen and how does it work. While working on cost profile in my lab I realized few things. In this post I’m sharing how to use cost profiles and how it is related to compute resources, Fabric group

You have to associate Cost profiles with compute resources. Compute resources is pool of clusters available in your endpoint. This is the single most thing I would like you to take as a learning from this post. Compute resource is in turn associated with fabric. There is direct relationship between compute resource and fabric. So when you create a fabric, you also carry along cost profile defined at the compute resource. Fabric admin creates reservation i.e. carves the chunk out of the fabric. Cost profiles get carried to this chunk. So cost profile applies to all the VMs created out of the fabric. Since it is fabric based operation, you need Fabric admin credentials to do this job. Continue reading Cost Profiles in vRealize Automation

vCAC 6.1 (vRA) Distributed Architecture Installation Guide Made easy –[Part –02]

Certificates for Identity Appliance

High level procedure to install and configure identity appliance

  1. Deploy Identity appliance
  2. Power ON appliance
  3. Configure Timezone
  4. Configure Time server
  5. Initialize SSO
  6. Import CA signed certificates
  7. Add Identity appliance to Active directory

Continue reading vCAC 6.1 (vRA) Distributed Architecture Installation Guide Made easy –[Part –02]