What is it?
Primarily used for building environments to allow development and testing. Vagrant uses a central repository of pre-configured systems that can be downloaded and stood up as necessary. This enables you to build environments without wasting time building base OSs and installing common applications.
Vagrant on its own is limited, in order to get value out of the application you do need to use a separate virtualization product. For this you can use popular licensed solutions such as VMware Workstation or Fusion, however the most common option is Virtualbox. I personally favour Virtualbox at it has the advantage of being freely available and it can be deployed on multiple operating systems, such as Windows, Linux or Mac without cost.
Below are some of the core features within Vagrant:
Build Complete Environments
As if wasn’t enough that you can spin up a single machine, you can also use multiple systems in your sandbox to more accurately reflect the real world environment. Need a load balancer, multiple Web servers and a database server? just spin them up all at once. Want to install additional applications as well? you can do all of that before logging in to a single machine.
You can access the environment from your local machine, as well as allowing basic port forwarding to share your environment with 3rd parties for collaboration projects. Vagrant also allows you to configure more complex environments by implementing multiple private and public networks.
You can share files between your local machine and the test environment. If like me you are wanting a portable environment on your laptop, one of the great features is the ability to access documents within your virtual environment from your laptop. This means that you can share files on your laptop with multiple virtual machines. This also means if you have a preferred text editor, you can use that to configure files within your lab.
All of the above features sound great, but the thing that makes Vagrant easy to consume is Atlas. Atlas amongst other things is a website that allows you to search and download pre-configured systems to run in Vagrant.. From atlas you can identify the box you need and then download it directly into vagrant via the command line.
How does it work?
Vagrant is not limited to a single test environment. In order to build an environment you simply need to create a folder and set it to be used by vagrant. Then populate a configuration file to your specification and start the environment.
Vagrant takes care of the rest. It downloads any boxes that you don’t have locally and then starts them up in your preferred virtualization platform.
You are then free to log in and configure as you see fit.
Where to start?
Well like most things the easiest thing to do is to just jump in feet first, So with the next post well look into how to install and get your feet wet with Vagrant.