Introducción a Vagrant
Con esta «Introducción a Vagrant» vamos a comenzar a conocer una herramienta muy completa aunque compleja. Muy útil para administradores y otros, opino que en el área de desarrollo es donde más partido podemos sacarle.
¿Qué es Vagrant?
Básicamente es un gestor de máquinas virtuales. Puede crear máquinas virtuales para diferentes herramientas de virtualización como VirtualBox , VMWare , etc. Es necesario insistir y dejar claro que las máquinas virtuales gestionadas por Vagrant, deben ejecutarse en algún software como VirtualBox. De hecho, al ser Vagrant una herramienta de línea de comandos, puede definirse como un terminal para VirtualBox y similares. Gracias a estas máquinas virtuales de muy alto aislamiento, podemos crear entornos de desarrollo, de pruebas de herramientas, etc., que no interferirán con los sistemas ya existentes que tengamos. ¿Necesitamos probar la nueva versión de Liferay? Creamos una máquina virtual con Vagrant. Sin embargo, cuidado,Obtener Vagrant
Siguiendo con la entrada, lo siguiente sería obtener Vagrant. Para ello, disponemos de varios paquetes que podemos descargar en https://www.vagrantup.com/downloads.html . Igualmente, en el caso de usar sistema basados en Debian, podemos trabajar con el gestor de paquetes Advanced Packaging Tool para obtener Vagrant.Instalar Vagrant
En primer lugar nos aseguraremos tener instalado un software de virtualización. Recomiendo VirtualBox porque es con el que más tiempo lleva trabajando Vagrant y porque es libre. Procedemos después a instalar Vagrant con el paquete de instalación descargado de nuestra elección o, utilizando algún gestor de paquetes como Advanced Packaging Tool. He aquí un ejemplo con ésta última opción:sudo apt-get install virtualbox
sudo apt-get install vagrant
// Comprobamos que está bien instalado. Si se ejecuta correctamente, devolverá la lista de opciones:
vagrant
Boxes
Los boxes son máquinas virtuales preconfiguradas de Vagrant que podemos obtener y de esta forma ahorrarnos trabajo. En el momento de escribir este artículo, los boxes podemos obtenerlos de sitios como este: https://app.vagrantup.com/boxes/search . También es muy conocido este otro: http://www.vagrantbox.es/ . Cada box, lleva asociado un identificador único que podemos usar en un fichero Vagrant (Vagrant file) de configuración para automatizar la obtención de la máquina virtual preconfigurada. Ejemplo:/* En este ejemplo queremos generar una máquina virtual para Ubuntu 18,
usando un box ya creado (ubuntu/trusty64) y con la opción de Vagrant para ello: */
vagrant box add ubuntu/trusty64
=begin
En este otro ejemplo, el identificador laravel/homestead ha sido el box elegido y además, usamos
el fichero de configuración de Vagrant (Vagrantfile) para preparar su arranque:
=end
Vagrant.configure("2") do |config|
config.vm.box = "laravel/homestead"
end
Iniciar la máquina virtual
Una vez que tenemos una máquina virtual o box tenemos que iniciarla para utilizarla. Para inicializar el box del ejemplo de Ubuntu 18:vagrant init ubuntu/trusty64
Siguiendo el ejemplo del box de Laravel, lo inicializaríamos así:vagrant init laravel/homestead
Ejecutar la máquina virtual
Para ejecutar un box lo habremos inicializado antes. Después simplemente ejecutamos el box inicializado en ese momento:vagrant up
En realidad, este comando ejecuta el llamado Vagrantfile y que he mencionado antes en un ejemplo.Trabajar con la máquina virtual
Para operar con la máquina virtual arrancada, usaremos SSH:vagrant ssh
Comandos relacionados con parar la máquina virtual
Para suspender, parar o destruir la máquina virtual:// Suspender la máquina virtual:
vagrant suspend
// Parar la máquina virtual:
vagrant halt
// Destruir, borrar la máquina virtual:
vagrant destroy
Es interesante el comando suspend
porque para la máquina virtual, guardando el estado en que se encuentra en ese momento. Cuando se vuelve a arrancar, lo hace a partir de ese punto.El fichero Vagrantfile
El ficheroVagrantfile
es un fichero de texto cuyo contenido debe ser sintaxis del lenguaje Ruby. Sin embargo, no es necesario conocer este lenguaje para utilizarlo. Lo normal es que especifiquemos en él:– El software de virtualización a utilizar (VirtualBox por defecto).
– El box que sirve de base para la nueva máquina virtual.
– La configuración de la máquina virtual.
– Los comandos que se ejecutarán en la máquina virtual nada más arrancar.
Como a pesar de todo, puede ser bastante complejo, es frecuente utilizar init
sin parámetros para que nos cree un fichero de base con bastante contenido comentado del que partir:vagrant init
Por supuesto que este fichero, utilice sintaxis Ruby y que sepamos como trabaja, lo puede potenciar especialmente.Editado
Disculpad todos: se me olvidaba indicar la URL de la documentación oficial que, por otro lado, es imprescindible: https://www.vagrantup.com/docs/index.html .
2 comentarios
hola, muy buena la explicacion . consulta, tenes algo sobre ansible, tengo windows y no me corre ansible-
muchas gracias
Daniel
Hola Daniel. Gracias por comentar. Tengo pensado incluir más artículos sobre DevOps pero los recursos de que dispongo, sobre todo tiempo, no me lo están permitiendo tal como explico en esta entrada.
Por otro lado, uno de los problemas que nos encontramos muchas veces al querer utilizar Ansible con Windows es la librería WinRM. ¿La has instalado? Un cordial saludo