Vagrant es un software para la creación y configuración de entornos de desarrollo virtualizados como VirtualBox o VMware, entre otros entornos de virtualización populares.
Es posible que por tu trabajo necesites un entorno virtual para desarrollar. Muchas veces buscaste una herramienta que supliera esas necesidades de virtualización, sin éxito, obviamente porque no conocías esta herramienta llamada Vagrant, una herramienta que sirve para crear ambientes.
¿Qué es exactamente Vagrant?
Vagrant es una herramienta con código abierto, la cual tiene como finalidad la creación y configuración de ambientes virtuales para desarrollar, de una forma portátil y ligera. Para así tener siempre cerca estos ambientes pre-configurados en su hogar. Estos tipos de ambientes pueden venir dados por VirualBox, VMware y AWS, pero también debería funcionar con cualquier proveedor de servicio que ofrezca virtualización.
El cerebro de esta máquina virtual es llamado VagrantFile, lo cual no es más que un archivo que describe configuraciones para la máquina virtual que se requiera. Este archivo maestro es sometido habitualmente a controles de las versiones para si poder permitirle a los programadores que tan solo con un comando puedan comenzar a desarrollar el proyecto.
Una ventaja que Vagrant tiene en cuanto a sus competidores es su integración con herramientas como Puppet y Chef, las cuales están basadas en la creación de recetas de Scripts, los cuales permiten cambiar la configuración, instalar plugins y otras cosas, todo esto durante el levantamiento del ambiente.
¿En realidad necesito Vagrant?
Si necesitas, por ejemplo usar una herramienta de Windows para completar el trabajo que vienes haciendo en Gnu Linux entonces Vagrant es tu solución, ya que dentro de tu GNU Linux puedes crear un espacio con Windows y desarrollar dentro de ese espacio lo que necesites.
Ejecutando Vagrant te evitas las clásicas molestias de tener que descargar instalar un sistema operativo, particionando tu disco duro, lo cual te supone una pérdida de tiempo y espacio de almacenamiento.