One of the great benefits of vCloud Automation Center is it’s Self-Service capabilities and although vCAC has a great Self-Service experience right out of the gate most organizations are going to want to tailor the request experience match their specific needs. vCAC has many ways this can be done, but one very simple way to do this is through the use of the Property Dictionary. The Property Dictionary allows us to create drop down lists, check boxes, date/time inputs, free form text fields, integer field and other methods of input. In this tutorial I’m going to walk you through using the Property Dictionary to create relational drop down fields that you can leverage to capture additional information from your users at the time of request.
OK so in this article we are going to create our first workflow that executes a powershell script that adds a computer account to active directory in whatever OU you would like it to be placed in. Our Powershell script will get loaded in to the Model Manager Repository and we will modify the “MachineRequested” workflow stub to execute our script. Then we will use the workflow stub property to determine for which VM’s we want want the workflow stub to execute.
Active Directory Module for Powershell
Open the Powershell Console
Run “Import-Module ServerManager”
Run “Add-WindowsFeature RSAT-AD-Powershell”
Create Powershell Script First thing we need to do is create our powershell script. The script that we will need has to do a few things. It needs to pull values from vCAC that will be used to add the machine to AD. The values we are going to pull are Hostname, DNSDomain, & Active Directory OU. We will use the Hostname and DNSDomain to create the FQDN for the server. The code for the script is below or you can just download it from here. ## Assign Custom Properties from vCAC to variables to be utilized as part of our script. ## Script created by Sid Smith http://www.dailyhypervisor.com Continue reading "vCloud Automation Center – vCAC 5.1 – Workflow Designer Walk-Through – Add Computer Account to Active Directory OU"
The VMware vCloud Automation Center Designer is a great tool that allows you to modify pre-built workflow stubs that are included with the designer. These workflow stubs allow you add custom machine menu items, call out to external systems at different states of the machines lifecycle including:
These are very common machine lifecycle states to perform activities such as:
vCAC comes with a self-service portal outside the standard portal. The self-service portal is included with the vCAC-51-Extensibiliy installation files. The reason it is included with the extensibility file sit that it is provided as an example of what you could build on your own. However it has quickly become the portal that everyone is using. To install the portal you need to download the VMware vCloud Automation Center 5.1 – Development Kit. In the kit their is an installation file named “DCAC-SelfService-Setup.exe” this is the installer for the Self-Service portal.
In this article I’m gong to walk through automating the installation of the Windows Guest Agent. There are advantages to automating the guest agent installation. One advantage is instead of pre-installing it in your template you can script the install using the “Run Once” capability exposed through the vCenter Customization Specification.
Included in the vCAC installation package is a zip file named DCAC-GuestAgent2010Zip.zip. This has all the exploded files that are used within the Windows Guest Agent Installer. These are the files we will be utilizing to manually install the service.
Preparing the files for Installation
1. First thing we need to do is extract the zip file so we can access the files within it.
2. Inside the zip file there is a file name “VRMAgent.exe.config” we need to edit this file and replace all references to “localhost” with the “IP” address or “hostname” of the “vCAC server“.
There are a few components to executing scripts in a Windows Guest OS which I’m going to cover in this post. Those items are:
Windows Guest Agent
Windows Guest Agent – UPDATED!
Note:Due to a bug in this version of the agent installer that prevents it from being properly removed from the guest machine I recommend you use the process I define in Automated Install of Windows Guest agent to install the agent. You can follow the article and automate the installation or perform the steps manually in your template to achieve the same result as outlined in this article, without the side affect of the agent staying resident on your deployed machines.
The Windows Guest Agent has a number of feature benefits that you receive if you utilize it. The Windows guest agent is a small agent that acts very similarly to the vCAC proxy agents. When it is installed you give it the name or IP address of the vCAC server. This allows it to check in with the server when it loads on a newly provisioned machine and determine if there is anything it needs to do. If the vCAC server has work for it to do it send the instructions and the agent executes the instructions on the local guest operating system. Once the guest agent is finished performing the work assigned the last process it executes is to remove itself from the guest. The guest agent comes with a number of pre-built functions, but also allows you to execute your own scripts. Some of the features available with the Windows Guest Agent are:
To create a custom drop down menu that can be presented to users at request time we will be leveraging the Property Dictionary. The Property Dictionary gives us the ability to enhance and further customize the request experience. The Property Dictionary allows us to:
Create Basic Drop Down Menu’s
Create Context Sensative Drop Down Menu’s
Create Drop Down Lists
Create Date/Time inputs
Create Noteboxes, TextBoxes, Integer inputs, links, password inputs and more.
In this example we are going to create a basic drop down menu that allows a user to select the folder their machine should be placed in inside vCenter from a list of available locations.
In this example we are going to configure a few different types of custom properties. The properties we are going to configure are:
VMware.VirtualCenter.Folder – This property allows you to define the folder in vCenter that a virtual machine will be placed in. If the folder does no exists it will be created when a machine is crated to be placed in the folder.
Cost.Center – This is not a reserved custom property, it’s one we are going to make up to attach a cost center to the machine request.
Project.ID – This is not a reserved custom property, it’s one we are going to make up to attach a Project ID to the machine request. We are going to prompt the user to input this value as part of the request.
Plugin.ADMachine.Cleanup.X – There are actually a few properties associated with this. The AD Cleanup wizard is a set of properties that allows you to configure what action to take in AD when a machine is destroyed. In my example I’m going to remove the machine record, however you can also configure it to move the machine to a specific OU and not delete it’s record.
vCAC utilizes custom properties in many different ways. They can be very useful if properly understood. To start with there are two high level classifications for custom properties. Those are:
Reserved Custom Properties – These are properties that vCAC understands and utilizes as part of it’s operations. vCAC has hundreds of reserved custom properties that it utilizes. These can be explored further at the end of the vCAC 5.1 Operating Guide.
Non-Reserved Custom Properties – These are properties that you can create on your own. These can simply be utilized to attach metadata to a machine, or they can be utilized within custom workflows and scripts.
Reserved Custom Properties
Reserved custom properties come in four different types:
Internal Properties – Internal custom properties are for vCAC use. These properties hold information relevant to features within vCAC such as approvals which don’t leverage any external systems.
External Properties – External custom properties are used for configuration outside vCAC. Properties that utilized to customize a provisioned machine are external custom properties. An example of this would be a property that defined the drive letter and label to be assigned to a disk inside a machine. (Note: If the values change on the provides machines they do not get updated in vCAC. The properties are utilized at provisioning time to perform the configuration only)
Read-Only Properties – Read only custom properties represent values such as the UUID of a virtual machine that cannot be changed or altered on the virtual machine or within vCAC.
Updated Properties – Updated custom properties represent items that can be changed and the updates reflected in vCAC. For example if the memory associated with a virtual machine were update through vCetner, when vCAC did it’s next docovery it would detect the change and update the property value for memory associated with the virtual machine.
Reserved custom properties are integral to the operation of vCAC. The properties are utilized by the built-in workflows to perform specific tasks as well as enable features. All machines in vCAC have a minimal set of properties that are attached to them for vCAC to be able to perform it’s functions. If we look at a vCenter virtual machine you will see these properties association with each one: Continue reading “vCloud Automation Center – vCAC 5.1 – Custom Properties Demystified”
vCAC has a feature that can be enabled to provide support for Static IP address assignments of provisioned workloads. This Static IP Address feature allows you to create “Network Profiles” that you assign to your networks from which it assigns IP addresses to machines that are provisioned on to the network. vCAC handles IP address allocation in the following way:
When a machine request is submitted it get placed on the appropriate reservation that is assigned to the group that can support the request.
Once placed on the reservation it get’s assigned to a network. If the network has a “Network Profile” assigned to it the machine will receive the next available IP Address form the “Network Profile. If not no address will be assigned.
As pat of the machine provisioning process you can execute “VMware Customization Specs” that perform the sysprep operation on the provisioned machine. When an IP address is assigned from a “Network Profile” vCAC instructs vCenter to override the customization spec with the IP information assigned to the machine. (When using VMware cloning either customization specifications” or the “vCAC Guest Agent” is required for static IP address assignments.)