Vagrant is pretty easy to get up and running, with downloadable installers for Windows and OS X (install VirtualBox first), and it can be apt-get installed on ubuntu. Vagrant starts with a base VM image (~300MB I think, hosted on their servers), and lets you run a script or more elaborate provisioner to configure it to your needs.
You configure the settings of the VM (networking, cpu's, shared filesystem) through the Vagrantfile script. Unfortunately there are some incompatibilities between the scripts of Vagrant 1.0 and 1.2, and I haven't made the GHCJS scripts backwards compatible with 1.0 yet (Ubuntu 12.04 comes with vagrant 1.0 in the repositories, so it would be nice to support that out of the box, instead of requiring users to download an updated .deb package)
A user only has to run `vagrant up' in the directory containing the Vagrantfile. `vagrant provision` reruns the installation script, and `vagrant destroy' removes the VM. `vagrant ssh` (from this directory) logs into the vm without a password.
luite