I have begun an effort to become more profficient at provisioning test and deveopment virtual machines using Vagrant and VirtualBox.

Vagrant is a Ruby based open source tool which building complete environments for development in a straight forward manner using workflow automation. Vagrant was started by Mitchell Hashimoto, and is currently maintained by HashiCorp.

VirtualBox is an x86 and AMD64/Intel64 virtualization product, and what I use to host and manage virtual machines at the Yidhra data center. Though an Oracle backed project, it remains licensed under the GNU General Public License (GPL) version 2.

Phase one on my path to proficiency will focus on being able to requistion a fully updated Gentoo Linux ~amd64 virtual machine, configured exactly to my expectations and controled by the Yidhra data center’s existing SaltStack systems managment infrastructure. The starting point for this effort will be the Gentoo 2014-02-27 amd64 (Faithful Stage 3) Vagrant base box from VagrantBoxes.

The steps as I see them are:

  1. Create working directory
  2. vagrant init
  3. Customize Vagrantfile
  4. vagrant up
  5. emerge-webrsync
  6. Convert Makefile to ~amd64
  7. emerge @world
  8. emerge a minimal set of tools like Git, vim and genkernel.
  9. Update to latest Linux kernel
  10. Reboot
  11. Update VirtualBox guest additions
  12. Remove uneeded packages
  13. Fill unused file system space with 0s
  14. Convert virtual machine into Vagrant base box to be used as starting point for further refinement

Scripts, dotfiles and other bits and bobs created in this effort will be available on GitLab. The resultant Vagrant base box, when there is one, will be hosted off the Yidhra Farm webpage.

Stay tuned for more