Vagrant is an open source software product for creating and managing portable virtual software development environments, such as Docker, KVM, HyperV, VirtualBox containers, AWS, as well as VMware. Vagrant attempts to simplify virtualization software configuration management to increase development productivity. It is written in the Ruby language, while its ecosystem supports the development of multiple languages.
The cost of fixing a bug increases exponentially the closer you get to production. Therefore, this open source software product aims to mirror production environments by providing the same operating system, packages, configurations, and users. At the same time, users can flexibly use their preferred editor, IDE or browser.
It integrates via existing configuration tools such as Chef, Docker, Ansible, Puppet or Salt.
Vagrant uses“Providers” or“Provisioners” as building blocks for managing development environments. Provisioners are tools that allow users to customize the configuration of virtual environments. Providers are service providers that are used to set up and create virtual environments.
It sits on top of the virtualization software as a wrapper and helps the developer interact with the providers easily. It automates the configuration of virtual environments so that the user does not have to use other virtualization software. Machine and software requirements are written to a file called “Vagrantile” to perform the necessary steps to create a development-ready box. “Box” is a format and extension (.box) for the environments that are copied to another computer to replicate the same environment.
Advantages of Vagrant
The main advantage of operating with a virtual machine is that you can get a development environment up and running rapidly. With today’s diverse software, several external applications are usually required, such as message queue daemons or various database servers. Installing these components individually on each computer can be very costly, while Vagrant provides a simple and straightforward configuration.
Development of Vagrant
Vagrant was first launched in January 2010 as a personal side project of Mitchel Hashimoto. The first version was released in March of the same year. In October 2010, Engine Yard announced that they would sponsor the project. The first stable version 1.0 was released in March 2012, pretty much two years after the original version was released. In November 2012, Mitchell formed an organization called “HashiCorp” to support full-time development. It remained free licensed software. HashiCorp now works to create commercial editions and provides professional support and training.
It was originally tied to VirtualBox, but version 1.1 added support for other Virtualization Software added.
Regardless of role – developer, designer or operator, this solution provides a simple, equal and independent workflow. It uses a declarative configuration file that describes all software applications, OS configurations, packages, users, etc.
Do you have any more questions?