La semana pasada os hablaba de Vagrant, la utilidad para desplegar máquinas virtuales basadas en templates (Box) y alguno de ustedes me preguntaban, ¿Cómo se crean esos templates? Hoy os voy a explicar como crear un Box a partir de una máquina virtual en VirtualBox, así de esta forma podéis crear vuestro propio repositorio de tamplates para Vagrant.
Lo primero que tenemos que hacer es preparar nuestra máquina virtual con una configuración por defecto, por si queremos publicar nuestro Box, ésto se realiza para seguir un estandar y que todo el mundo pueda usar dicho Box.
Preparación de la máquina virtual:
- Crear el usuario Vagrant, para poder acceder a la máquina virtual por ssh, a este usuario debemos crear una relación de confianza usando el siguiente Keypairs.
useradd -m vagrant su - vagrant mkdir .ssh
wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O .ssh/authorized_keyschmod 700 .ssh
chmod 600 .ssh/authorized_keys
- Aunque Vagrant no esta pensado para usar el usuario root, a veces nos es necesario por lo que debemos cambiar la password de root a vagrant
passwd root
Indicamos que la password es vagrant
- Conceder permisos al usuario vagrant para que pueda configurar la red, instalar software, montar carpetas compartidas... para ello debemos configurar visudo para que no nos solicite la password de root, cuando realicemos estas operación con el usuario vagrant.
visudo
Ahora debemos añadir la siguiente linea
vagrant ALL=(ALL) NOPASSWD: ALL
Hay que comprobar que no existe una linea indicando requiretty si existe la comentamos.
- Debemos asegurarnos que tenemos instalado las VirtualBox Guest Additions, para conseguir mejoras en el S.O o poder compartir carpetas con el anfitrión.
root@dbigcloud:~# modinfo vboxguest filename: /lib/modules/3.13.0-32-generic/updates/dkms/vboxguest.ko version: 4.3.20 license: GPL description: Oracle VM VirtualBox Guest Additions for Linux Module author: Oracle Corporation srcversion: 22BF504734255C977E4D805 alias: pci:v000080EEd0000CAFEsv00000000sd00000000bc*sc*i* depends: vermagic: 3.13.0-32-generic SMP mod_unload modversions
Creando el Base Box en Vagrant
Una vez hemos configurado la máquina virtual ya podemos crear el box, en virtual box debemos de localizar el nombre de nuestra máquina virtual.
En mi caso he estado preparando la máquina virtual dbc-ubu01, pero una buena práctica es establecer un nombre descriptivo con el Sistema operativo instalado, versión y software instalado. Ahora vamos a crear el Box, abrimos una consola y ejecutamos lo siguiente:
vagrant package --base dbc-ubu01
Ya podemos añadir nuestro box, para ello usamos el comando siguiente:
vagrant box add dbc-newBox01 /home/dbigcloud/package.box
Ahora debéis de crear un proyecto para iniciar la máquina virtual, si no os acordáis podéis repasar el árticulo de la semana pasada.
- Primeros pasos con Vagrant
Si creeis que vuestro template aporta cosas diferentes a los que ya existen en los repositorios, podéis compartirlo a vagrantcloud,espero que os haya sido útil.