Having a library of virtual machine templates can be a major benefit for the IT provider and for the user. With a library of templates, most virtual machine requests can be fulfilled quickly with something ready to be deployed.

In providing virtual machines to fulfill user needs, it is not efficient to create each virtual machine as a custom job. The solution is to create a master image, a template, of a type of virtual machine, and deploy copies of the virtual machine as needed. You can anticipate the requests from your user population, and prepare families of templates to cover requests.

For example, you can have a family of templates running applications on Windows Servers 2008, another family for a Linux distribution, another family for Windows 7, and so on.

As an illustration, you might create a virtual machine with Windows Server 2008, with all patches and VMware Tools installed. You can clone the virtual machine and install application A on one clone and application B on the other. Convert them to templates to become part of your library. Keep the original virtual machine to use to make additional application-specific templates.

Example Library of Templates

Windows Family Virtual Machine Templates

Linux Family Virtual Machine Templates

Windows 2008 Server R2 with SQL

Linux-based Apache Web server

Windows 2003 Server SP2 with SQL

Linux-based Tomcat server

Windows 2003 Server SP2 with DB2

Linux-based NFS server

Windows 2003 Server SP2 with Oracle 10g

Linux-based Samba server

Windows 2003 Server SP2 with Oracle 11g

Linux-based server for development environment

Windows 2008 Server R2 for development environment

Linux-based server for testing environment

Windows 2003 Server SP2 for development environment

Linux-based DHCP server

Windows 2008 Server R2 for testing environment

Linux-based domain server

Windows 2003 Server SP2 for testing environment

The first step is to create a virtual machine from scratch to be the starting point for developing the template. After installing a guest operating system in the virtual machine, you install an application. From there you can convert the virtual machine to a template, and from the template deploy virtual machines.

This scenario uses a rudimentary workflow, and includes the cloning step as optional. When you become familiar with the process, you can adapt it, using shortcuts where applicable to your situation, and you can expand it to include cloning if you skipped it the first time around.

The process of creating templates and deploying virtual machines can be done by someone who has been assigned the Administrator role. If you want to create a unique role for this process that does not include all the privileges of an Administrator, the following list contains the minimum necessary.

Virtual machine.Provisioning.Deploy template on the template to deploy from the template.

Virtual machine.Provisioning.Create template from virtual machine on the datacenter to create the template.

Virtual machine.Provisioning.Clone template on the datacenter to clone a template to create other templates.

Virtual machine.Provisioning.Mark as virtual machine on the datacenter to convert template to a virtual machine.

Virtual machine.Provisioning.Mark as template on the virtual machine to convert it to a template.

Virtual machine.Inventory.Create new on the destination folder or datacenter.

Resource.Assign virtual machine to resource pool on the destination host, cluster, or resource pool.

Datastore.Allocate space on the destination datastore or datastore folder.

For information and instruction about privileges and roles, see the vSphere Security documentation.