Provision a Desktop Environment With Vagrant
Vagrant base boxes often do not come with a desktop environment installed. Rather than hunting around to find one that does, you can use vagrant’s provisioning capabilities to add a desktop to your base box of choice.
sudo apt-get install ubuntu-desktop
which will install the full Ubuntu desktop to your system.
It’s possible to do something similar with Vagrant’s provisioning functionality. Vagrant can work with external provisioning tools, but in this case we will just incorporate a shell script into a vagrant file.
To do this we can add the following to the vagrantfile:
config.vm.provision "shell", inline: "sudo apt-get install --no-install-recommends lubuntu-desktop -y"
To keep the virtual machine relatively light weight I have selected to install the lxde-based lubuntu-desktop. I have also used –no-install-recommends to leave out some of the larger packages that are installed by default. Note that even a lightweight ubuntu desktop is likely to take a while to install.
It is essential that we include the ‘-y’ flag to make sure the installation is approved (it’s equivalent to us typing ‘y’).
Your final vagrantfile should look something like this:
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.box = "hashicorp/precise64" config.vm.provision "shell", inline: "sudo apt-get install --no-install-recommends lubuntu-desktop -y" end
with this vagrant file should also run the new provision script.
If you encounter problems you may need to run
vagrant up --provision
to re-run the provisioning.
You will need to tell your vagrant file that you want to provision your machine, and where to find the provisioning script.
Now when you run vagrant up, the resulting virtual machine should have a desktop environment.