Crear box de Vagrant desde cero... ¡Automáticamente!
Published 2016-10-08
Hoy os quiero enseñar mi manera de crear una Vagrant box desde cero y como he automatizado el proceso con la ayuda de unos scripts que he escrito.Casi seguramente puedes encontrar muchos blogs que explican como crear una Vagrant box desde cero, pero honestamente ... es un trabajo aburrido, asì que pensé de compartir mis scripts que nos simplifican un poco las cosas. Los puedes encontrar en mi cuenta GitHub, y aquí abajo hay las instrucciones para usarlos.
Crear y configurar una nueva maquina virtual
Antes de todo tienes que crear una nueva maquina en VirtualBox, en este
ejemplo la llamaré fedora24
.
Luego, hay que añadir una regla "port forwarding" a la tarjeta de red. Pincha con el botón derecho el nombre de la maquina y selecciona Settings -> Network -> Adapter 1 -> Advanced -> Port Forwarding -> Plus icon y usa los siguientes:
- Name: ssh
- Protocol: TCP
- Host IP: 127.0.0.1
- Host Port: 2222
- Guest IP: leave this field blank
- Guest Port: 22
Ahora hay que instalar el sistema operativo, procura crear un usuario
administrador con el nombre vagrant
.
En cuanto termina la instalación, hay que añadir el usuario
vagrant
a los sudoers para hacer que no pregunte por la contraseña
y deshabilitar el requiretty
. Para ello hay que entrar el la
maquina y añadir las siguientes lineas al fichero
/etc/sudoers
.
vagrant ALL=(ALL) NOPASSWD: ALL
Defaults:vagrant !requiretty
Ahora, instala los "Guest Additions" de VirtualBox con sus dependencias, por
ejemplo en Fedora hay que instalar primero el paquete
kernel-devel
.
Tambien tienes que habilitar y arrancar el servicio ssh.
$ sudo systemctl enable sshd
$ sudo systemctl start sshd
Sal de la maquina virtual y genera una nueva clave ssh para el usuario
vagrant
con los siguientes comandos:
$ cd $HOME/.ssh
$ ssh-keygen -t rsa -C vagrant@localhost -f vagrant.id_rsa
Luego, ejecuta scripts/copy-ssh-key.sh
para copiar la clave
publica del usuario vagrant
a la maquina virtual y prueba la
conexión ssh con:
$ ssh -i vagrant.id_rsa -p 2222 vagrant@127.0.0.1
En fin, apaga la maquina virtual, ya está lista par crear la Vagrant box.
Crear una nueva Vagrant box
Genera un nuevo fichero Vagrantfile
:
$ scripts/generate-vagrantfile.sh fedora24 1.0
Crea una nueva vagrant box:
$ scripts/build-box.sh fedora24 1.0
Genera una nuevo fichero json:
$ scripts/generate-json.sh fedora24 1.0 "Fedora 24 base image."
Ahora, añade la nueva box a tu Vagrant:
$ scripts/add-vagrant-box.sh fedora24 1.0
Listo, ahora es el momento de probar la nueva box:
$ cd tests
$ vagrant init fedora24
$ vagrant up
Repositorio del proyecto y licencia
Puedes encontrar el código fuente de este proyecto en GitHub.
Este proyecto es bajo licencia MIT. Por favor, leer el fichero LICENSE.
Danilo
Ref: Creating a Base Box