Chapter 2
Setting Up Your Environment
In order that we are all seeing the same environment as we progress through the following material you will need to install three applications onto your computer (the host computer):
- VirtualBox
- vagrant
- git
Let’s take a look at each and discuss why they are required.
2.1 VirtualBox
VirtualBox is Oracle’s virtual machine application. This allows us to run a virtual (guest) machine on our host computer. This in turn means that even if you are running, for example, a Windows PC you will be able to run the Linux servers required to follow along with this material.
Virtualisation also isolates our host computer from the machines that we use. This has the advantage that no matter how badly we mess up the virtual environment it will have no effect on our host computer and any change to our host computer will have no effect on the virtual machines1.
2.2 Vagrant
Vagrant is HashiCorp’s command line tool for managing virtual machines. Vagrant provided a simple consistent method for defining virtual machines as code. This means we can all easily set up the same virtual machine environment without the need to rely on following complex set up instructions.
As with many topics covered in this course, there is a more detailed book covering Vagrant Vagrant from Scratch[Boo20e].
2.3 git
Git has become the de facto standard in version control tools. Git is a powerful tool, unfortunately its history means it has a bloated command line interface that is often daunting and confusing to newcomers. Fear not! We will initially use git commands to obtain some files and nothing more (so you can just type the commands with no need to understand them) but as we progress we will explain the git command line and if you are interested in learning Git in detail there is a complete book on the topic Git in Depth[Boo20b].
2.4 Installing the host tools
I have prepared some brief installation videos but to get the most up-to-date instructions for installing these host tools follow the instructions on their web sites.
1This is not 100% true, but close enough for our purposes here.