Curious about how to efficiently build a workstation to work on a variety of projects using reliable repeatable processes? Then this post is for you. It is part 1 in a series that I will write about this topic.
There are a variety of hardware workstations that you may be using: a desktop, laptop, maybe two laptops. The OS on these computers could also be of different types: Windows (7,8), Mac OS X, or linux (RedHat,Centos,etc.). We can normalize (or make same) the process of working on projects across these profiles (hardware & OS) with a group of tools designed to work together efficiently. These are virtualization and bootstrap automation tools (or CLI). Two specific tools in these categories are VirtualBox and Vagrant. There are others, however these serve as working examples for this post. Both tools are open source and free. You can easily download and install them on all the before mentioned profiles (hardware & OS).
Now that you have the tools to create new virtual machines easily you still need to have base image. The base image is the OS of your choosing that you would like available for working on projects. You are not restricted to just one though, you may have multiple projects on different operating systems and you can have base images for each. I use a centos 7 minimum install base image often and it will work well for the purpose of this blog. The centos 7 minimum image is available to everyone from the online service Atlas. I've uploaded my base image there and made it available to the public. Atlas is built by Hashicorp, the same makers of Vagrant, additionally having built my own base image I can be confident in the reliability of it being accessible and working.
Now that we have identified tools and a base image. The only final necessary component to get my virtual machine running is to create a "Vagrantfile". The file can be as simple as the following:
----------------- Start File: Vagrantfile ------------------
Vagrant.configure(2) do |config|
config.vm.box = "abrooke/centos-7min"
----------------- End File: Vagrantfile -------------------
In the same directory as the before mentioned file. Simply run:
#> vagrant up
Once the output indicates successful completion the machine will be online and ready to be accessed using SSH. With a properly configured SSH client you will be able to access the virtual machine with the simple command:
#> vagrant ssh
In the next part in the series we will explore more features of the VagrantFile and configuring the Virtual Machine with Chef.