vCloud Automation Center – vCAC 5.1 – Custom Property of the Day #1 – Operating System

Property of the day is a new series I’m starting where I will cover a different custom property each day. This is the first property of the day check back each day for a new property.

POTD #1 Operating System
vCAC version: 5.1
Property Name
[Read more…]

vCloud Automation Center – vCAC 5.1 – Example CMDB Integration

I keep getting asked for an example of integrating into a CMDB. The challenge with this is which CMDB, Asset, or Ticketing system do you create an example around. They are all very different and most organizations have heavily customized them. My solution was to create a sample system to demonstrate vCAC’s capabilities and leave the specifics of any particular CMDB out of the equation.

In this tutorial I’m going to show you how to integrate vCAC 5.1 into an external system of your choosing. In my example I’m using a simple SQL database with a very simple web front end. My workflow is going to call a PowerShell Script that uses SQL statements to update the database with the value I want populated. Now you can take this and have execute code to talk to a specific API or database, btu the point is how to get the data you want from vCAC when you want it and make it usable to push to another system.

I have provided my sample database, web front-end, Workflows,and Scripts download here.
[Read more…]

vCloud Automation Center – vCAC 5.1 – Workflow Designer Walk-Through – Add Computer Account to Active Directory OU

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

  1. Open the Powershell Console
  2. Run “Import-Module ServerManager”
  3. 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
[Read more...]

Keep it simple stupid – registering unregistered vm's

Last week my boss came to me and asked if I could write a script for a customer to register VM’s after being replicated from once VI environment to another.  I agreed to take on the project and go for it.

Like everything I do these days I decided to use powershell to write the script.  I have taken a liking to it and the fact that I can run the scripts on both ESX and ESXi hosts saves me from having to re-create scripts all the time.  So I plugged away to 3am wrote the script, tested it inside out and sideways in my lab.  I was confident in the scripts ability to register all vm’s form all datastores I went ahead and sent it off to the customer.

A few days later I was on a conference call with the customer.  They were having problems with the script.  It wasn’t registering all the vm’s.  After a few hours of troubleshooting I realized that I needed to go back and try to recreate the problem’s in my lab to fix the script, but the customer didn’t have that kind of time.

A short while after getting off the meeting with the customer I received an email from them stating not to worry they had gotten a shell script that worked.  Then I started to think…….  I went in to my lab and created a shell script that would do the job.  The shell script was 5 lines long as oppose to powershell script that is about 40 lines.

The shell script if anyone needs it looks like this:

for v in ‘find /vmfs/volumes/ -name “*.vmx” `
echo “Registering $v” >> /log/registeredvms.log
vmware-cmd -s register $v

So the short of the story is sometimes it is best to keep it simple stupid.  Utilizing powershell for this problem was just too much overkill and in the end there were issues that were overlooked that I still can’t reproduce in my lab.  A simple shell script is all that was required and what I should have originally decided on.

So in the end this is a lesson learned and hopefully it will prevent someone else from making the same mistake.

VI Toolkit powershell simple script #4 – VM Information

This is a good powershell script for tacking virtual machine inforamtion for change management. It will output the vm’s name, the host it is on, the powerstate, Memory, Number of CPU’s, IP address, and FQDN to a csv file.

$IPprop = @{ Name = "IP Address"; Expression = { $_.Guest.IpAddress } }
$HostNameProp = @{ Name = "Hostname"; Expression = { $_.Guest.Hostname } }
Get-VM | select name, host, powerstate, MemoryMB, numCPU, $IPprop, $HostNameProp | export-csv c:vm_info.csv