Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

What I need to do is create a virtual machine template and deploy up to a hundred copies of it at a time. I don't care if this is done in Hyper-V/SCVMM, VMWare ESXi, Xen or VirtualBox, as I can work with any of them. I have yet to find a way to deploy more than one image at a time. Any Suggestions?

share|improve this question

migrated from stackoverflow.com Sep 24 '11 at 23:56

This question came from our site for professional and enthusiast programmers.

4 Answers 4

There are about a zillion options here but what is most vendor agnostic is simple PXE + minimalist kickstart + a SCM system like puppet or chef. You can also use a copy on write OS template rather than PXE for the initial setup but past that it's useful to go with a SCM system to handle all your custom configuration instead of constantly dealing with managing disk images.

share|improve this answer

Learn programming or a scriptable language.

Hyper-V is scriptable. Like totally scriptable. This means anyone worth 10 cents for administration can write scripts to deploy images from a central share and configure the VM and start it, and the result is distributing this script to all the boxes, which - again - any 10 cents worth admin has the tools for in place (some enterprise system control package, like - for Hyper-V - SCCM / SCOM).

It is not that complicated to set up a VM. Copy virtual image file / create delta disc file, then set up VM etc. - for Hyper-V about a page of code, two if you have a lot of complicated settings.

share|improve this answer

Can the virtual machine's filesystem be read only? If so, in xen/kvm (probably all hypervisors) you can have a base image that all the VMs boot off of with read only access. You just need to create a config file for each host. So for example you have one base image: /mnt/base_hvm/system.img, and a bunch of config files that look like this:

disk = [ 'file:/mnt/base_hvm/system.img,hda,r' ]
vif = [ ' ' ]   #By default no n/w interfaces are configured. E.g:  A default hvm install will have the line as vif=[ 'type=ioemu,bridge=xenbr0' ]
builder = "hvm"
device_model = "/usr/lib/xen/bin/qemu-dm"
serial = "pty" # enable serial console
on_reboot   = 'restart'
on_crash    = 'restart'

Then you can start as many machines on that one image as you want. You could mount some empty file images for each writable /tmp /var/tmp that you want to provide individually to each system for write access as you want.

share|improve this answer

... I could go on, but ig you could provide more information about budget, etc it would help a lot

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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