#4sysadmins

Inicio » GNU/Linux » Crear máquinas virtuales con Vagrant

Crear máquinas virtuales con Vagrant

Últimas Entradas

Follow #4sysadmins on WordPress.com

¿Que es Vagrant?

Vagrant es una herramienta desarrollada en Ruby que nos facilita la creación de entornos virtualizados, muy útil para tareas de desarrollo. Cuando queremos tener una máquina virtual (Guest) en nuestro sistema anfitrión solemos recurrir a herramientas como VirtualBox, VMWare o KVM (entre otras). Una vez seleccionada la herramienta de virtualización necesitamos una imagen .iso y llevar a cabo todo un proceso de instalación del sistema que puede demorarnos bastante.

Con Vagrant todo esto se reduce a cuestión de minutos (seguramente menos de 5′). Vagrant necesita para funcionar una de estas aplicaciones anteriormente citadas pero la principal ventaja radica en que una vez tengamos por ejemplo VirtualBox y Vagrant instalados, solo tendremos que descargarnos una imagen (box de ahora en adelante) ya creada por otros usuarios y hacerla correr. No pienses que descargar la box llevará horas, es un proceso rápido que en breves veremos.

Nosotros vamos a instalar VirtualBox y Vagrant sobre un GNU/Linux (Linux Mint Rebecca 17.1 64Bits) y vamos a comenzar en 3, 2, 1…

 

REQUISITOS:

  • La versión de VBox a descargar será https://www.virtualbox.org/wiki/Linux_Downloads > All distributions AMD64.
    Nota: La versión descargada a día de escribir este tutorial es VirtualBox-4.3.26-98988-Linux_amd64.run
  • La imagen (box) de la máquina virtual que vamos a utilizar es Ubuntu 12.04 LTS (“Precise Pangolin”) de 32Bits

1º  Instalamos VBox:

Podemos descargarlo directamente desde la web oficial o desde los repositorios:

Desde el gestor de paquetes o desde la consola:

$ sudo apt-get install VirtualBox-4.3

Nota: Podemos seguir el link oficial: https://www.virtualbox.org/wiki/Linux_Downloads

2º  Instalamos el pack de extensión:

 

 

3º  Instalamos Vagrant desde la CLI

$ sudo apt-get install vagrant

4º Creamos un directorio para las máquinas vagrant, por ejemplo en nuestro directorio home:

$ mkdir /home/nebul4ck/vagrant

Y dentro creamos otro para la máquina de pruebas que vamos a instalar:

$ mkdir /home/usuario/vagrant/osiris

Nota: Modificar nebul4ck por nuestro usuario y osiris por el nombre que queramos dar a la máquina

5º Nos movemos al interior del directorio:

$ cd /home/nebul4ck/vagrant/osiris

6º Nos descargamos la imagen de la máquina:

La sintaxis para descargar e “instalar” la máquina es:

$ vagrant box add {nombre_máquina} {url_descarga}

$ vagrant box add osiris http://files.vagrantup.com/precise32.box

Con esto descargaremos e “instalaremos” Ubuntu 12.04 LTS (“Precise Pangolin”) de 32Bits

Nota: La imagen (box de ahora en adelante) que hemos descargado se encuentra en ~/.vagrant.d/boxes

Info: En esta URL encontraremos algunos ejemplos de máquinas: http://www.vagrantbox.es/

Vagrant dispone de comandos internos (una especie de shell) con los que podremos interactuar. Ya hemos visto en el paso anterior “box add” y ahora utilizaremos “init” con el que prepararemos un archivo de configuración para la nueva máquina:

$ vagrant init

Esto nos creará un archivo llamado Vagrantfile que será el archivo de configuración de osiris. Podemos abrirlo para ver que contiene. Adelanto que será aquí donde realizaremos posibles redirecciones de puertos, creación de red privada, modificar la IP y el hostname, etc…

8º Ahora modificamos el nombre de la box en Vagrantfile. Para ello descomentamos y modificamos la siguiente directiva:

config.vm.box = “osiris”

9º Levantamos la máquina (así de fácil):

$ vagrant up

Otros comandos:

vagrant halt (para apagarla).
vagrant suspend (suspenderla)
vagrant resume (si hemos usado suspend, volveremos a tener la máquina activa con resume)
vagrant reload (para reiniciarla, si ya esta corriendo)
vagrant ssh (conectar ssh con la nueva máquina)
vagrant destroy (eliminar todo lo relacionado con la box. Cuando ya no queramos volver a utilizarla o “desinstalarla”)

Nota: Igualmente podremos utilizar los comandos del propio sistema una vez nos encontremos conectados a la máquina, es decir shutdown -h, shutdown -r

10º En este paso ya tendremos todo listo para poder acceder a nuestra máquina por lo que usaremos el siguiente comando:

$ vagrant ssh

Algunos detalles extras:

1º Si queremos compartir algo entre nuestro anfitrión y la nueva máquina (guest) podremos utilizar la carpeta /home/nebul4ck/vagrant/osiris como origen y la carpeta /vagrant del guest. Es decir todo lo que peguemos dentro de origen se verá desde la carpeta destino.

2º Si hemos creado mas de una máquina, podremos crear una red privada entre ellas de manera que sean accesible con ssh, scp, etc… Esto es tan fácil como descomentar y modificar la directiva config.vm.network :private_network, ip: “192.168.33.10”

En este ejemplo le hemos dado la .10 a osiris. Si creamos otra máquina podremos por ejemplo utilizar la .11 en su archivo Vagrantfile correspondiente.

3º Si queremos redireccionar puertos, útil si queremos acceder a un servidor web que corre en el 80 en el guest, podríamos descomentar y modificar la directiva  config.vm.network :forwarded_port, guest: 80, host: 8080 de manera que mediante la IP y el puerto 8080 podamos acceder al sitio.

Nota: Para este paso y el anterior es conveniente modificar el archivo /etc/hosts de ambas máquinas (anfitrión, guest y el resto de guest que hayamos creado) de manera que podamos acceder a ellas por nombre. Por ejemplo los archivos podrían quedar algo así:

Anfitrión

127.0.0.1       localhost
#127.0.1.1       Anfitrion
10.200.2.11    Anfitrion
192.168.33.10   osiris

Guest

127.0.0.1       localhost
#127.0.1.1      osiris
192.168.33.10   osiris
10.200.2.11    Anfitrion

Referencias:

Getting started oficial: http://docs.vagrantup.com/v2/getting-started/

Anuncios

1 comentario

  1. Cyberthrone dice:

    Reblogueó esto en .

    Me gusta

Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: