I use the ESXi hypervisor, I find it ‘just works’ and the VSphere client is easy to use. That said, as the bulk of virtualization is moving into the CPU silicon there is increasing parity amongst the mainstream hypervisors. There is no reason why Xen, KVM, Hyper-V or VirtualBox won’t work equally well.
For Ubuntu 12.04 on ESXi, I take the defaults presented for a ‘typical’ Ubuntu 64Bit VM. I allocate 48GB of thin-provisioned storage and 2GB of memory. For this example I used the 12.04.1 64Bit Desktop Ubuntu Desktop build:
I prefer the Gnome Classic desktop and I install it immediately after the obligatory update and upgrade.
sudo apt-get update sudo apt-get upgrade sudo apt-get install gnome-shell
Reboot after the update and gnome-shell install. When the login screen reappears, click on the Ubuntu icon to the right of the user name. A dropdown menu will appear with a number of desktop selections, I choose ‘GNOME Classic’.
For remoting the Ubunutu GUI, I find FreeNX provides the easiest to use, most responsive platform. The install and configuration of that package may be found here: https://help.ubuntu.com/community/FreeNX and the condensed procedure for 12.04 follows:
sudo add-apt-repository ppa:freenx-team sudo apt-get update sudo apt-get install freenx cd /usr/lib/nx sudo wget https://bugs.launchpad.net/freenx-server/+bug/576359/+attachment/1378450/+files/nxsetup.tar.gz sudo tar xvf nxsetup.tar.gz sudo ./nxsetup --install --setup-nomachine-key cd ~
I use the NX Client for Windows to connect to the development server. The client may be found here: http://www.nomachine.com/select-package-client.php
For ESXi, I also install open-vm-tools, it is easier than adding the VMWare repositories or installing the tools from the server itself (which bypasses the package systems as well).
sudo apt-get install open-vm-tools
After all of the above is complete, I typically export the VM as an OVF so I can quickly rebuiild the OS if I damage the one I am working with or create new VMs without the handiwork.