Automated VM's provisioning

I need to setup a dynamic test environment on top of VMware infrastructure. The goal is to have my test application call some service that triggers the whole provision process:

  • Create a VM
  • Install my application's most recent build
  • Run a list of configurations
  • Start/Stop services

Later I need to be able do destroy the machine!

Is there a piece of software that can handle this process? Or do I need to assemble one custom made?


Solution 1:

VMware does have some products for this sort of workflow; Lab Manager or Orchestrator could automate most of what you want. If you want to save some cash on the provisioning / teardown process, you could roll your own solution using their scripting API and V(I)MA(forums here)

To automate your app deployment and configuration, Puppet or cfengine will do config management and application installation, and can be used with Capistrano for general purpose automation.

Solution 2:

VMware's vCenter Lab Manager product is designed for exactly this purpose.

Granted, you have to pay for both vSphere and Lab Manager licenses, but if you're already in a VMware environment and you plan on doing a lot of automated testing, the cost will likely be worth the benefit.

Solution 3:

Commercially, Novell has a product called Zenworks Orchestrator 2.0 that you might find interesting.

Since they bought PlateSpin they have been integrating functionality from PlateSpin's portfolio into the Orchestrator product.

It is admittedly aimed probably a bit higher than you are looking for, alas. More of a focus on big data centers, with workloads that change rapidly, such as a large SAP system, that might need to spin up some VM's to do work over night, then spin them down during the day, or really at any point.

Very neat and interesting (and complex) product. Pretty cool, but commercial, and may be more than you are looking for.