In the Last post we saw how to use vCenter Orchestrator (vCO) to create service based VM. In this post we will look at how to import the vCenter Orchestrator workflow into the vCloud Automation center (vCAC). Integration process is straight provided as long as you know some unknown bugs or workarounds. To do this we have to use Advanced Service Designer. Once integration is done we can publish vCenter Orchestrator workflow as catalog items, include them in the services and publish the services in the catalog.
Little Background Information
vCenter orchestrator comes embedded with vCAC appliance.
If you use embedded vCenter orchestrator (referred as default orchestrator server) and also if you use identity appliance, vCenter Orchestrator will register itself with Identity appliance. As result vCenter orchestrator can be accessed only using SSO user i.e. email@example.com. If you try to register the vCenter orchestrator with vCenter SSO or LDAP, vCenter orchestrator breaks. It keeps saying “Node is not active”. I don’t know yet what is the solution for this.
I simply removed identity appliance and started using SSO the one which comes with vCenter. As a result we have one SSO. vCenter orchestrator register itself to vCenter’s SSO and I can access vCO using any domain account. However if you wish to register this vCenter Orchestrator via vCAC it doesn’t work. It works only if external vCO is register using LDAP rather SSO as shown below.
Primary reason I want to highlight as I have spent almost a week on this problem and I have built vCAC environment twice. Hope it saves my reader’s time .
Lets go back to the main topic. Lets make vCenter Orchestrator vCO talk to each other.
Now we have made the connection. Next steps are simpler. Foundation is already created in the last post. All we need to do make vCAC aware of it.
Configure External vCenter Orchestrator
I preferred using external vCenter Orchestrator as it gives more flexibility in operating and managing than the embedded and looks more stable. Go to Administration Tab using Tenant Administration credentials
1. Select Server Configuration
2. Select Radio Button “Use an external Orchestrator server”
3. Field details are explained below.
|Most of the screen of vCloud Automation Center Provides test option. It makes things really helpful to troubleshoot. Above Test Connection button confirms if the connection is made or not. After testing connection don’t forget to press Update|
As vCloud Automation Center Administrator you also have option to configure each tenant to specific folder insider vCenter Orchestrator. This is simplest way to achieve multi-tenancy inside vCAC but it still leaves you exposed at vCenter Orchestrator level.
Login as administrator to default tenant which is vsphere.local. Go to Advanced Services select Default Orchestrator Folder and edit the path as shown in screen next to below this screen
In below screen I’m selecting path for Coca-Cola Tenant. In below screen tree structured is actually being exposed by vCenter Orchestrator. Therefore folders you see below are pre-created by me.
In above screen you also see Server Configuration tab. In this tab have option to configure vCenter Orchestrator for all tenants. I have not used this.
Now lets create a custom resource
Create Custom Resources
Login with a user who has privileges of service architect. In the Advanced Services tab go to the Custom Resources tab and select the Inventory type . These inventory type are vCenter Orchestrator Objects exposed through the API of vCenter Orchestrator connection we just established above
Give Name to this inventory type. This is something you should be able to relate. This name will be needed during Service Blueprints configuration as resource you will be provisioning.
In the Details Form tab I haven’t touched anything, just left it default. Below is the screen for reference.
Service blueprints allow us to publish vCenter Orchestrator workflows (pre-defined or customized) as catalog items.
Next screen you see vCenter Orchestrator’s tree structure of workflow. Select the workflow of your choice. Since I have created customized workflow in previous post, I’ve selected Coca Cola Services
On the right hand side of above screen you get to see all the parameter we have defined in the workflow. You can rename the parameter. In above screen VMName01 doesn’t make complete sense, so I will rename it as we proceed. Review and then select Next. In the Details tab put the name for the service and put some meaningful description as it presented to the customer when you request service as shown by arrow . See below how Description is reflected in catalog request form
In below screen in Blueprint form tab you’ve lot of option. e.g. you can change the order of tab. Simply drag and drop as per your requirement.
In each display items like Services, VMName01 and Backup you have ability to control default values, select whether value is required. Simply select Edit button to make modifications. Let me change the name of VMName01.
You also see Constraints tab in above figure. Below is the Constraints screen. All values are picked from the workflow e.g. I have kept VM Name to be have minimum length of string as 5.
You can change these values as per your requirement. In request form I have shown that error control is invoked when the length of string is less than 5
After Blueprint Form tab is filled, press Next in Provisioned Resource tab select the custom resource we have created earlier.
Press Add to create Service Blueprint. After Service Blueprint is created it is in draft stage. You must publish so that this is available as a catalog item while creating service.
Login as user and select the service to be published
Fill in the details as requested below.
Press Next to go to Step tab.
Select Name of the Virtual Machine
Select if you need Backup ( I selected Yes)
After the service is successfully provisioned, in vCenter we can see HR-Gold-009 is provisioned as expected
Conclusion: If you know vCO and vCAC I think you can do wonderful orchestration that too without have very little development background.