Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How could I automate the building of a VM machine with required software?

My idea is that I have a webpage which interfaces to a VM server (either ESX or Hyper-V), I choose what OS I want and what software I'd like installing on the machine. The webpage sends the required requests to which in turn builds the machine.

share|improve this question

closed as not a real question by Chris S, Khaled, ThatGraemeGuy, pauska, RobM Dec 28 '11 at 15:34

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

...for your internal use? – Bart Silverstrim Dec 22 '11 at 13:45
Without being nasty, this is a really /really/ big project in it's own right. There are lots and lots of components and so many questions and answers that I don't know where to begin. Essentially, you've asked how to build an ocean liner with the tools in your shed. I don't think you're going to get much of an answer. – Dan Dec 22 '11 at 13:46
I second Dan on the fac that this is a really big project. You can start from api documentation from vmware/microsoft – m0ntassar Dec 22 '11 at 13:59

This highly depends on the guest OS and the software installed on it. If the set of software is known in advance, then you can simply create VM templates, and deploy VMs from templates on demand.

For a detailed list of required software, the guest OS will start playing a part

  • For Linux you might be able to use either a kickstart setup, or a combination of a VM template and Chef/Puppet.
  • For Windows There are different ways of deploying software automatically, starting with GPO/MSI and ending with Altiris and the likes.

Either way, this is not a simple task in a small home environment, though doing some basic templating under libvirt should be easy enough.

share|improve this answer

Start here for Microsoft Hyper-V -

This is do-able, but is a huge undertaking from a planning and policy perspective.


Virtual machine self-service enables the Virtual Machine Manager (VMM) administrator to grant users permission to create and operate their own virtual machines within a controlled environment on a limited group of virtual machine hosts. The Virtual Machine Manager administrator configures self-service policies, which determine the scope of the users' actions on their own virtual machines.

share|improve this answer

Your idea is correct, but devil is in the details.If you need reliable, scalable and usable solution this will require a lot of effort.For hobby project, some scripting would suffice.

share|improve this answer

OpenNebula supports ESXi (and Hyper-V but it's not so production-ready), and include a Contextualization feature that permits to configure a VM during the first boot using a set of scripts placed on an autogenerated cd-rom ISO.

Take a look at

As a real-world example, I use this function to configure and deploy virtualized LAMP stacks using an unique template image of Ubuntu LTS.

share|improve this answer

Would have thought this would be possible with a combination of PowerCLI for the VMWare side and then Group Policy assignements. You could use the web page to generate either an XML or CSV for the creation of the VM using New-VM cmdlet. The software assignment could be generated using GPO software deployment. These can also be managed using the modules for AD in Powershell 2.0 but would require a 2008 R2 DC if I remember correctly.

As Dan pointed out this would be a fairly chunky amount of work but if it is a common occurence then well worth it. Would definitely be easier if there were templates for the various machines required which may ease the initial generation.

share|improve this answer

Someone already did this : easyvmx

share|improve this answer
The question mentions ESXi and/or Hyper-V, while the configuration tool you linked to is for VMWare Player. – pauska Dec 28 '11 at 12:37
er, ESX is made by vmware in case you didnt notice. but that wasnt actually my point, my point was to tell the poster than someone has already realised his or her idea. nice one for voting a new comer down though. – lolfrog Dec 29 '11 at 0:33
VMWare ESX and VMWare Player are two different products, so the page you linked to doesn't apply. – pauska Dec 29 '11 at 13:52

Not the answer you're looking for? Browse other questions tagged or ask your own question.