Vagrant, crea y configura entornos de desarrollo virtualizados
En el siguiente artículo vamos a echar un vistazo a Vagrant. Esta es una herramienta de línea de comandos para la creación y configuración de entornos de desarrollo virtualizados. Nos va a permitir definir los servicios a instalar así como también sus configuraciones. Esta herramienta está pensada para trabajar en entornos locales y lo podemos utilizar con shell scripts, Chef, Puppet o Ansible.
De forma predeterminada, Vagrant puede aprovisionar máquinas sobre VirtualBox, Hyper-V y Docker. Aun que también se pueden instalar otros proveedores como Libvirt (KVM), VMware y AWS a través del sistema de complementos.
Como mencioné más arriba, Vagrant sirve para ayudarnos a crear y configurar máquinas virtuales con determinadas características y componentes. La gran ventaja de este software es que posee un archivo de configuración llamado Vagrantfile donde se centraliza toda la configuración de la VM que queramos crear. Podremos utilizar el Vagrantfile para crear una VM exactamente igual cuantas veces queramos. Además es super liviano, por lo que podremos agregarlo a nuestro repo o enviar por mail a los compañeros de trabajo.
Vagrant generalmente es utilizado por los desarrolladores para configurar un entorno de desarrollo que funcione en múltiples sistemas operativos. Puede funcionar en Gnu/Linux, Mac o Windows. Los entornos de desarrollo remotos obligan a los usuarios a renunciar a sus editores y programas favoritos. Vagrant funciona en el sistema local con las herramientas con las que ya estemos familiarizados.
En las siguientes líneas vamos a ver cómo instalar Vagrant en una máquina Ubuntu 20.04. Para ello vamos a utilizar VirtualBox, que es el proveedor predeterminado.
Instalar Vagrant en Ubuntu
El primer paso como es habitual, será descargar e instalar la herramienta, pero en este caso además tendremos que instalar el proveedor de máquinas virtuales que queramos utilizar. Este por defecto será VirtualBox, ya que es gratuito y viene integrado en Vagrant.
Si VirtualBox no está instalado en tu sistema, se puede instalar abriendo una terminal (Ctrl+Alt+T) y ejecutando los comandos:
sudo apt update; sudo apt install virtualbox
Mientras escribo estas líneas, la última versión estable de Vagrant es la 2.2.9. Para su descargar, los usuarios podemos visitar la página de descargas o ver si hay una nueva versión de disponible. También podremos ejecutar wget desde la terminal (Ctrl+Alt+T) para descargar el paquete .deb necesario:
wget https://releases.hashicorp.com/vagrant/2.2.9/vagrant_2.2.9_x86_64.deb
Una vez completada la descarga, ya podemos instalar el paquete escribiendo en la terminal:
sudo apt install ./vagrant_2.2.9_x86_64.deb
Cuando finalice la instalación, podremos verificar que todo ha sido correcto ejecutando el siguiente comando, que imprimirá la versión instalada:
vagrant --version
Comenzando
Crear un proyecto Vagrant es tan simple como configurar el directorio raíz del proyecto y definir un archivo Vagrant.
Para empezar, no habrá más que ejecutar los siguientes comandos para crear el directorio y después acceder:
mkdir ~/mi-proyecto-vagrant cd ~/mi-proyecto-vagrant
Ahora vamos a crear un nuevo Vagrantfile usando el comando vagrant init, seguido de la caja que nos interese utilizar.
Las cajas son el formato del paquete para los entornos Vagrant, y son específicas del proveedor. Se pueden encontrar una lista de Cajas Vagrant disponibles públicamente en la página del catálogo de Cajas.
En este ejemplo, utilizaré la caja debian/stretch64:
vagrant init debian/stretch64
Vagrantfile es un archivo Ruby que describe cómo configurar y aprovisionar la máquina virtual. Los usuarios podemos abrir el Vagrantfile, leer los comentarios y hacer ajustes de acuerdo a las necesidades de cada uno.
Ahora ejecutaremos el comando vagrant up para crear y configurar la máquina virtual:
vagrant up
Vagrant monta el directorio del proyecto en /vagrant en la máquina virtual. Esto nos permitirá trabajar en los archivos de nuestro proyecto en nuestra máquina host.
Para acceder a la máquina virtual, ejecutaremos:
vagrant ssh
Una vez en ella, podremos realizar los cambios que nos interese:
Podremos detener la máquina virtual cuando queramos con el siguiente comando:
vagrant halt
Para destruir todos los recursos creados durante la creación de la máquina, el comando a utilizará será:
vagrant destroy
Y en líneas generales con esto, hemos visto cómo instalar Vagrant en Ubuntu 20.04 y crear un proyecto básico. Los usuarios que lo necesiten, pueden obtener más información sobre la instalación y uso de esta herramienta visitando la página oficial, en dónde se puede encontrar la documentación oficial.