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?
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.
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.
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.
I would create a barbones VM with just the OS etc. Then you can just copy the VM files to clone the VM and then automate the build process within the VM. Not exactly what you were asking for, but thought I would give my KISS principle answer :-) You could also just use the snapshot feature within VMWare workstation.
me best advice is : use snapshots options, this way you can clone your barbones VM in a few seconds and destroy it after all your test are done. if you are using Linux, you can user lvm or vmware snapshot feature, both of them works perfectly.
Sitting in a puppet-training at the moment, so I'd have to say... puppet by Reductive Labs.
What it doesn't do is actually spawn your VM (that I'm aware of).