PATROCINADO

Introducción a Vagrant

Índice de contenidos

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.

Introducción a Vagrant

¿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, nunca usaremos Vagrant en un entorno de producción.

En el mundo de los DevOps que tan de moda está hoy día, Vagrant debería ser un «must».

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 fichero Vagrantfile 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 .

Conclusión

Vagrant es una excelente herramienta con multitud de posibilidades multisistema, llevando su complejidad según deseemos o necesitemos profundizar. Y como habréis deducido esto simplemente es lo que indica el título de este artículo: «Introducción a Vagrant».

Nada más, un cordial saludo y hasta otra.

2 comentarios

  1. hola, muy buena la explicacion . consulta, tenes algo sobre ansible, tengo windows y no me corre ansible-
    muchas gracias
    Daniel

    1. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Foto Perfil
JOSÉ MANUEL DOMÍNGUEZ ROMERO
Más de 20 años formando y desarrollando, siempre aprendiz, ahora emprendedor que intenta compartir toda esa experiencia y conocimientos.

¡¡¡ ÚLTIMAS DONACIONES !!!

🏆 Catalina Gasco Leonarte 🏆

¿Necesitas clases particulares de programación?

Reserva conmigo y recíbelas a través de Skype, Zoom, Hangouts, Discord o similar.

Clases particulares

PATROCINADORES

(Los patrocinadores incluyen enlaces de afiliados, con cuyos servicios llevamos años, sin queja alguna y por tanto contrastados y recomendados por nosotros)

GANA DINERO CON FIVERR