Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ndice:
Administracin de Sistemas Informticos y Redes IES Jacarand Brenes (Sevilla). 1
1. Introduccin 3
1.1 Objetivos: 3
2. Descripcin 4
2.1 Detalles de herramientas utilizadas 4
2.2 Topologa 4
2.3 Hardware y Software 4
3. Instalacin y Configuracin 5
3.1. Instalar Vagrant en Linux 5
3.2. Instalar VirtualBox en Linux 5
4. Utilizacin 6
4.1. Box 6
4.2. Comandos Vagrant 6
4.3. Creacin de box e instalacin de mquina virtual Vagrant 7
4.4. Plugins en Vagrant - Snapshot 8
5. Creacin de Plantillas 9
5.1. Debian 7 Configuracin 9
5.1.1. Debian 7 Creacin de Plantilla 11
5.2. Windows 7 Creacin de Plantilla 12
5.2.1. Conexin con vagrant entorno grfico 12
6. Repositorio Local 13
6.1. Instalacin y configuracin de Apache 13
7. Manual de Usuario 14
7.1. Instalacin con vagrant desde un cliente 15
7.2. Configuracin para Windows interfaz grfica 16
7.3. Configuracin y conexin ssh en Linux 17
8. BIBLIOGRAFA 18
1. Introduccin
Por eso, la intencin de este proyecto es llegar a mejorar los inconvenientes nombrados anteriormente y
conocer otras ventajas que nos aporta esta potente herramienta llamada Vagrant.
1.1 Objetivos
El objetivo de este proyecto se centra en:
Su instalacin en sistemas GNU/Linux y Mac OS X y la utilizacin mediante lnea de comandos.
Descarga e instalacin de mquinas virtuales desde el repositorio de vagrant, donde dispones de ms
de 250 mquinas con entornos de desarrollo predefinidos para ser utilizados en cualquier momento.
Instalacin de plugins para mejorar an ms este software.
Creacin de mquinas virtuales con VirtualBox, Windows 7 y Debian 7, desde el principio, y su
configuracin para ser utilizadas por vagrant donde queramos.
Exportacin de las mquinas creadas Windows y Linux, se crearn plantillas de las mquinas
configuradas para disponer de ellas en cualquier computadora que usemos Vagrant.
Creacin de un repositorio web local en nuestro servidor, para que los usuarios de la red que usen
vagrant puedan descargar e instalar las mquinas desde su navegador con facilidad.
2. Descripcin
Vagrant fue creada por Mitchell Hashimoto en 2010, que desde 2012 es propiedad de su propia
compaa HashiCorp. Esta herramienta nos facilita considerablemente la creacin y administracin en
entornos de desarrollo completos basados en mquinas virtuales, apto para sistemas operativos GNU/Linux,
Mac OS X y Microsoft Windows.
Es de cdigo abierto y est escrita en el lenguaje de Ruby, pero se puede usar en multitud de proyectos
escritos en otros lenguajes, tales como PHP, Phyton, Java, C# y JavaScript.
Originalmente se desarroll para ser utilizada por Virtual Box, aunque desde la versin 1.1 es posible trabajar
con otras soluciones de virtualizacin como VMware, Hyper-V, LXC, Amazon EC2...
2.1 Detalles
Este proyecto est diseado mediante un ordenador porttil que virtualiza un Servidor Ubuntu 10.04.4 TLS.
Aqu es donde se encuentran las mquinas administradas por Vagrant, el repositorio web local y el software
Virtual Box que las virtualiza a todas.
2.2 Topologa
En esta topologa se muestra con ms claridad, cmo y con qu dispositivos se consigue este proyecto:
3. Instalacin y Configuracin
La instalacin es muy sencilla, slo debemos entrar en el sitio web y descargar el archivo de
instalacin, que en nuestro caso, es un .deb para linux. Tambin disponible para Mac OS X y Windows.
Vagrant Descargas
cd /home/vagrant/Descargas/
~/Descargas$ sudo dpkg -i vagrant_1.7.2_x86_64.deb
4. Utilizacin
La administracin y configuracin de mquinas con Vagrant, puede llegar a ser muy extensa, por lo
que se van a indicar los pasos necesarios para interactuar con las mquinas predefinidas en VirtualBox, y
para descargar y gestionar desde los repositorios disponibles que ahora se mostrarn a continuacin.
4.1. Box
Box, en resumen es una mquina virtual empaquetada, que a su vez, es un fichero que contiene la base
para crear las mquinas virtuales y la configuracin. La box se puede crear para poder desplegar mquinas
virtuales que estn definidas en nuestro VirtualBox del servidor, o bien se puede crear desde numerosas
imgenes disponibles en un repositorio pblico de vagrant.
vagrant box <subcomando> [argumentos]
Gestiona las boxes creadas en el sistema. Para este proyecto debemos conocer estos comandos:
add aade una nueva box
list lista las boxes disponibles
remove Borra la box indicando el nombre
vagrant resume - Resume una mquina que ha sido anteriormente suspendida con vagrant suspend.
vagrant destroy - Detiene la mquina virtual y destruye los cambios que podamos haber hecho.
vagrant package - Exporta maquinas virtuales en .box. Este comando se detalla ms adelante.
Aqu podemos encontrar muchas distribuciones de sistemas operativos, adems con herramientas
previamente instaladas para facilitarnos el trabajo. As no tendremos que instalar mquinas desde 0
cargando nuestra ISO del sistema en la mquina virtual y hacernos pasar mucho tiempo. Este repositorio
permite la instalacin directa de una mquina virtual desde la web pblica, slo con lanzar unos comandos
tendremos nuestra mquina funcionando.
Nos dirigimos a la pgina previamente indicada, seleccionamos nuestra versin a instalar, en mi caso
Ubuntu precise 32 para VirtualBox, y copiamos el link de la mquina.
mkdir VirtualMachines/UbuntuPrecise32
cd VirtualMachines/UbuntuPrecise32
Creamos la box, aadimos el nombre que vamos a asignar a la mquina y copiamos el link:
Iniciamos indicando el nombre de la mquina. Esto generar un archivo Vagrantfile que permite
la configuracin de la mquina virtual, que podemos configurar a nuestro gusto. Desde el reenvo de
puertos, configuracin de redes e interfaces, limite de memoria, entre otras configuraciones.
vagrant up
No todo son pasos adelante, y con esto me refiero a que se cre un contratiempo que adems es un
fallo muy comn. Al ejecutar Vagrant up tena un error; El mdulo del kernel no est cargado
En el mismo error nos aportaba como solucionarlo y era con la siguiente instruccin:
Si no est el servicio instalado descargamos desde los repositorios Linux y ejecutamos de nuevo:
Una vez solucionado el error de kernel ejecutamos de nuevo vagrant up para iniciar la mquina y
para conectarnos a Ubuntuprecise32, nos tenemos que conectar por ssh:
vagrant ssh
5. Creacin de Plantillas
Unas de las funcionalidades que nos aporta Vagrant, es que podemos exportar en el formato .box con
la opcin vagrant package para poder utilizar las mquinas virtuales en cualquier momento, instalarla
como previamente se ha visto en el apartado 4.3 y poder utilizarla o compartirla con quien quieran.
En cierto modo, debemos realizar una serie de configuraciones en funcin de cmo vamos a utilizar las
mquinas. Si vamos a crear una mquina, que al ejecutarla se despliegue el entorno grfico como veremos a
continuacin, es muy sencillo, pero si queremos conectarnos desde Vagrant por ssh a la mquina en cuestin,
si que debemos realizar unos pasos que recomienda la documentacin de Vagrant.
Lo primero ser instalar dos mquinas desde la Iso en nuestro VirtualBox del Servidor Ubuntu 10.04 . Por
una parte Windows7 con entorno grfico y por otra, Debian 7 sin entorno grfico.
Adems Vagrant recomienda aadir la primera red que sea de tipo NAT, disco virtual de tipo (VMDK) y no
activar bluetooth ni otras funcionalidades que no vayamos a usar.
Vamos a saltar los pasos de instalacin de las mquinas desde cero y slo nos centraremos en la
configuraciones para poder conectarnos con Vagrant.
Tras varios intentos y fallos al cargar el kernel se solucion a travs de la pgina de VirtualBox
ejecutando los siguientes comandos, para compilar las propiedades de los invitados:
Mediante nuestra unidad de cd disponible en nuestra mquina - Debian > Dispositivos >
Actualizamos el software:
Para tener una conexin cmoda con la mquina desde el invitado, debemos Instalar:
"Vagrant public keys", paquete procedente de git hub que permite a todos conectarse va ssh.
Con el usuario vagrant creamos el directorio para la clave y la descargamos en l:
mkdir -p /home/vagrant/.ssh
cd /home/vagrant/.ssh
wget --no-check-certificate https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O
/home/vagrant/.ssh/authorized_keys
Modificamos el fichero /etc/ssh/sshd_config y nos aseguramos que cumple con esta configuracin:
Puerto 22
PubKeyAuthentication yes
#Descomentamos la linea siguiente
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
Se crea otro directorio para almacenar las mquinas que se van a exportar en .box con package:
mkdir VirtualMachines/templates
cd VirtualMachines/templates
Exportamos Debian 7
[- - base] Se indica el nombre de la mquina creada por VirtualBox.
[--output] Indica el directorio de salida y el nombre para el archivo .box.
Ya tenemos nuestra plantilla a partir de una mquina virtual creada en VirtualBox desde cero disponible para
entornos que usen Vagrant.
Lo siguiente (por estar ms seguros), es crear una box para la mquina exportada en nuestro servidor. As
probaremos la configuraciones realizadas en Debian 7 para conectarnos con Vagrant y hacer un test a la
mquina por si existen fallos en la conexin ssh.
Los procesos se han descrito previamente en el apartado 4.3. La nica diferencia es que en vez de
aadir la mquina por Url se hace en modo local y tendramos que indicar la ruta al fichero
Debian7.box generado anteriormente. En mi caso:
Iniciamos la conexin y en el proceso de inicio pedir la contrasea ssh predefinida para el usuario vagrant:
Inicio de la plantilla Debian7.box en una nueva box por ssh con vagrant. Ubuntu Server 10.04
Exportando Windows 7 con vagrant package. Este proceso suele durar varios minutos
Mi objetivo en este apartado es conocer otra funcionalidad que nos aporta Vagrant, ya que puedes desde la
linea de comandos desplegar el entorno grfico de la mquina en cuestin. Al ejecutar vagrant up para
encender la mquina, automticamente se muestra la ventana de VirtualBox con la mquina iniciada en modo
grfico.
Cmo se hace?
Editando en fichero Vagrantfile generado por el comando vagrant init Nombremquina. Para disponer
de dicha funcionalidad, debes configurarlo antes de iniciar la mquina cada vez que vayas a instalarla por
primera vez.
6. Repositorio Local
En este apartado vamos a poner a disposicin nuestras plantillas .box creadas anteriormente, para
que los clientes de nuestra red local puedan instalar estas mquinas como si se tratase del repositorio pblico
de Vagrant.
Se puede hacer de varias formas. En mi caso decid hacerlo mediante web para que sea ms intuitivo para los
usuarios de la red, instalando en nuestro Servidor Ubuntu el servicio de Apache y enviando las imgenes
.box al directorio pblico.
Movemos las platillas creadas del directorio templates al nuevo directorio repositorio:
Creamos una sencilla pgina web en html donde se explican los pasos para instalar mquinas, y el link
disponible para copiar y pegar en el comando de Vagrant. Imitando el repositorio de vagrantbox. Ahora
todos los usuarios que se encuentren en la misma red que el Servidor local, disponen de este repositorio
accediendo desde el navegador con el siguiente enlace:
172.16.0.10/repositorio/maquinas.html
7. Manual de Usuario
Los usuarios deben saber, que este tutorial consiste en conocer la utilizacin de un repositorio local
creado en nuestro Servidor local Ubuntu, y de como instalar mquinas desde este repositorio con Vagrant.
Si has llegado a este punto, como usuario debe saber que para utilizar Vagrant puede descargarlo desde la
propia web y un software de virtualizacin como VirtualBox, apartado 3.
La demostracin del funcionamiento en este caso, como cliente, se hace desde un sistema Mac OS X .
Vagrant en Mac funciona completamente igual que en Linux, ya que Mac OS X se basa en el mismo kernel
de Linux y el software Vagrant. La nica diferencia es la instalacin en cuanto a Linux, aunque se basa en
seguir los pasos de instalacin dmg.
172.16.0.10/repositorio/maquinas.htm
Seleccione la mquina Windows en este caso y copie el link 'crtl+c'. Dirjase a su terminal y ejecute
el comando para crear una nueva box en el directorio que usted prefiera, en este caso:
Cree una nueva box en el directorio que se encuentre, y desde el directorio podr controlar su
mquina virtual con vagrant. Esto suele tardar unos minutos.
vagrant up
Para iniciar windows slo tenemos que escribir el siguiente comando y listo:
vagrant up
En esta captura de escritorio, podemos apreciar la mquina Windows ejecutada con Vagrant, adems, el
script de Vagrant de inicio nos ha pedido la tarjeta de red que queremos asignar a esta mquina pulsando el
nmero correspondiente que aparece, en mi caso eleg: 1, en0: Ethernet ASIR:
En el mismo directorio en el que creamos la box establecemos conexin ssh con Debian7:
vagrant ssh
Una vez establecida la conexin, podemos disfrutar de nuestra mquina Debian7 descargada desde el
repositorio local en un tiempo estimado de 5 minutos:
Una vez tenga su mquina funcionando es muy fcil gestionar sus mquinas virtuales con Vagrant.
Para ms detalles, todo se complementa con el punto 4 visto anteriormente o la documentacin de Vagrant.
8. BIBLIOGRAFA
www.vagrantup.com.org