software developer

vCenter Orchestrator: The Good, Bad, and Ugly

On a recent project, I used a vCenter Orchestrator Workflow to deploy a new vApp with customizable VMs and then install SQL Server 2012.

I did this by writing a workflow that created a new vApp consisting of two VMs from pre-made virtual machine templates and then running a script to install SQL Server 2012.

vCenter Orchestrator is used to automate many different aspects of VMware. This uses the Orchestrator workflow engine that is integrated into the VMware suite. 

When it worked, it worked really well. But when it didn’t, it really didn't. 

Here are a few things I liked about using vCenter Orchestrator and some that didn't impress me.


  • An easy to use interface 
  • Built-in workflows 
  • Complete app listing
  • Many third party packages available to add
  • Because it was Java script based, it was easy to program without much programming knowledge


  • Java based console—it crashed on me a few times and was slow
  • It’s missing many workflows that I believe should be standard (add CPUs and anything to do with vApps on vCenter) 
  • Sometimes the wait action never completed for no apparent reason even though the task variable showed as completed 
  • Some base workflows never worked right. For example, some of the clone VM workflows didn't work
  • The API list didn't have good examples

In addition to these frustrations, there were several other things I had problems with.

There were no workflows that come with Orchestrator related to vApp, nor any of their provided plugins besides their vCloud plugin, which only works with vCloud, not vCenter.

I made some workflows that copied vApps and edited them. I wrote a few of them like shutting down vApps, powering on vApps, and a few written by other people in the community.

In many workflows, there is an action called vim3WaitTaskEnd. Essentially, this takes in a variable (usually called task) with the information from a previous action to see if it is completed or not. If the task is not completed, it waits.

Several times, the variable task was completed but it still sat at the vim3WaitTaskEnd. I still don’t know why that happened. I had to duplicate the workflow and removed the vim3WaitTaskEnd action. This mostly happened in the Change RAM workflow.

I could not get most of the clone VM workflows to work correctly. The only one I was able to get to work is the Clone, Windows Sysprep with single NIC and credentials.

The last problem was getting scripts to run on the VM through Orchestrator. The script I used was for formatting drives and installing SQL Server. To do this I used workflows made by a person on the Orchestrator forum. This works great. The only problem is that when I was running the SQL Server 2012 setup.exe I had to completely disable UAC on the VM (registry edit).

Continue Exploring




Our Work Services Commerce Cloud Approach Culture Blog Careers Contact

Grand Rapids:
3344 Grand Ridge Drive NE
Grand Rapids, MI 49525
616 365 1000
Ann Arbor:
8186 Jackson Rd
Ann Arbor, MI 48103
616 365 1000