Crear box de Vagrant desde cero... ¡automáticamente!
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 encotrar el codigo fuente de este proyecto en GitHub
Este proyecto es bajo licencia MIT. Por favor, leer el fichero LICENSE.
Danilo
Ref: Creating a Base Box