Introducción a Vagrant

Cómo ya sabréis, Vagrant es una herramienta que se utiliza en la automatización de la gestión de máquinas virtuales. Con ella se pueden construir entornos de desarrollo portable, cuya principal ventaja es la de poder desarrollar un entorno parecido al de producción, con lo que se minimizan los problemas que suelen ocurrir cuando se pasa a producción el software de desarrollo.

Plugins de Vagrant

Aparte de todas las posibilidades que nos ofrece Vagrant, además podemos extenderlas, a través de los denominados plugins, que nos permiten hacer casi cualquier cosa. Las principales acciones que podemos realizar con el empleo de los mismos son los siguientes:

  • Añadir nuevos comandos además de los existentes
  • Añadir nuevas opciones de configuración de nuestras máquinas
  • Añadir nuevos provisionadores
  • Añadir nuevas funcionalidades en las operaciones existentes (up, destroy, …)
  • Añadir funcionalidad específica de los sistemas operativos donde se ejecuta la máquina virtual

La gestión de plugins se lleva a cabo con el comando vagrant plugin acompañado de una serie de subcomandos, de la siguiente forma:

vagrant plugin  <command> [<args>]

Los subcomandos para los plugins disponibles son:

  • expunge
  • install
  • license
  • list
  • repair
  • uninstall
  • update
Vagrant Plugins

Crear plugins para Vagrant

Para poder desarrollar este tipo de plugins debemos tener en cuenta estas cuestiones:

  • Es imprescindible aprender Ruby, ya que Vagrant está desarrollada con este lenguaje de programación, y por tanto los plugins se desarrollan con el mismo lenguaje.
  • Se pueden utilizar todas las herramientas del ecosistema Ruby.
  • Los plugins se distribuyen con el sistema de “gemas” de Ruby, el sistema de gestión de paquetes propio de este lenguaje.

Dónde encontrar los plugins

Al no existir un catálogo oficial de plugins de Vagrant, cómo si ocurre con los boxes para esta herramienta, para encontrarlos tenemos que recurrir a buscar en Google, dónde encontraremos multitud de ellos con los que ampliar las funcionalidades de la herramienta.

También podemos recurrir a los listados de plugins recomendados por la comunidad de usuarios de Vagrant. Algunos de ellos los encontramos en estos sitios:

Plugins recomendados para Vagrant

Algunos plugins que recomendamos por su utilidad son los siguientes:

  • Hostupdater: añade una entrada al /etc/hosts para acceder a la máquina virtual por dominio en lugar de por IP
  • copy_my_conf: copia los ficheros de configuración de la máquina de host a la guest: .git, .vim, .ssh, etc
  • vagrant-digitalocean: para gestionar máquinas virtuales en digitalocean (droplets)