Publicidad

Crear tu propia box de Vagrant desde una máquina virtual en VirtualBox


Por Alex el 23/10/2025, Comentar el artículo

Comparte este artículo:      




Y deja de depender de Hashicorp y colaboradores para disponer de las últimas distribuciones actualizadas y subidas a sus repositorios. Se puede muy fácilmente crea una máquina virtual con Virtualbox y después convertirla a .box e instalarla en el repositorio local de Vagrant para utilizarla tantas veces como queramos.


Personalmente me gusta trabajar más con servidores que con servicios como hace docker, y Vagrant con Virtualbox me va muy bien y rapido para levantar servidores y realizar pruebas ... pero ... no siempre están disponibles las ultimas versiones recién salidas.

Por eso es buena idea creértelos tu mismo desde una instalación personalizada. Y pensando en voz alta si eres una persona como yo que utiliza muchos servidores de MySql o PostgreSQL o entornos LAMP puedes crearte un entorno personalizado por ejemplo en MySql y levantar servidores de MySql para realizar pruebas rápidamente desde Vagrant.

Pero vamos al lio!!

Lo primero es crear una máquina virtual con Virtualbox, voy a crear un servidor Ubuntu Server 24.04.3, la ultima versión de momento.

Si no queréis hacer todo el proceso de configuración de la máquina virtual desde virtualbox os dejo un script en bash para hacerlo, solo tenéis que cambiar las rutas y nombre de la máquina virtual

#!/bin/bash
VM_NAME="ubuntu-server-24.04.03"
ISO_PATH="/home/depruebas/Descargas/distros/ubuntu-24.04.3-live-server-amd64.iso"
VBOX_PATH="/home/depruebas/VirtualBox VMs/$VM_NAME"
DISK_PATH="$VBOX_PATH/${VM_NAME}.vdi"

# Crear VM
VBoxManage createvm --name "$VM_NAME" --ostype Ubuntu_64 --register

# Crear disco
VBoxManage createmedium disk --filename "$DISK_PATH" --size 80000

# Añadir almacenamiento
VBoxManage storagectl "$VM_NAME" --name "SATA Controller" --add sata --controller IntelAhci
VBoxManage storageattach "$VM_NAME" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "$DISK_PATH"

# Añadir lector de CD con la ISO
VBoxManage storagectl "$VM_NAME" --name "IDE Controller" --add ide
VBoxManage storageattach "$VM_NAME" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium "$ISO_PATH"

# Configurar red y memoria
VBoxManage modifyvm "$VM_NAME" --ioapic on
VBoxManage modifyvm "$VM_NAME" --memory 2048 --vram 16
VBoxManage modifyvm "$VM_NAME" --nic1 nat

echo "==> Iniciando instalación automática"
VBoxManage startvm "$VM_NAME" --type gui

Este script lo que hace es crear una maquina virtual en virtualbox, y lo deja como en la imagen

Ubuntu server en virtualbox

Te ahorras el asistente de crear una maquina virtual pero el proceso de instalación es manual, aunque con packer también eso se puede automatizar peor ya lo dejo para vosotros.

Durante la instalación tendremos en cuenta los siguiente:
  • Sin LVM (importante si luego quieres hacer snapshots simples) y aprovechar todo el disco de entrada.
    Añadir a un grupo LVM

  • Usuario: vagrant y Password: vagrant
  • Configura OpenSSH Server durante la instalación.
Una vez instalado el servidor hay que configurar el servidor para Vagrant instalando lo siguiente

# Actualizar paquetes
sudo apt update && sudo apt upgrade -y

# Instalar dependencias básicas por si algunas no vienen de serie
sudo apt install -y curl wget vim net-tools openssh-server

# Habilitar SSH para vagrant
sudo mkdir -p /home/vagrant/.ssh # si no existe ya
curl -fsSL https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub -o /home/vagrant/.ssh/authorized_keys

# Y dar estos permisos si no los tiene ya, en ubuntu server esto ya esta bien. sudo chmod 700 /home/vagrant/.ssh
sudo chmod 600 /home/vagrant/.ssh/authorized_keys
sudo chown -R vagrant:vagrant /home/vagrant/.ssh

echo "vagrant ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/vagrant
sudo chmod 440 /etc/sudoers.d/vagrant
# Limpiar paquetes innecesarios
sudo apt autoremove -y
sudo apt clean
sudo rm -rf /tmp/* /var/tmp/*
sudo rm -rf /var/lib/apt/lists/*


Una vez tenemos el servidor instalado cerramos la maquina virtual y lo vamos a convertir en una box de vagrant.

Para esto tenemos que ejecutar los siguientes comandos desde el terminal

vagrant package --base ubuntu-server-24.04.03 --output ubuntu-24.4.3.box

Esto crea un fichero .box compatible con Vagrant. El nombre ubuntu-server-24.04.03 es el nombre que le das a la maquina virtual.

Nombre de la maquina virtual

Y después lo añadimos al repositorio local de vagrant.

vagrant box add netveloper/ubuntu-24.04 ./ubuntu-24.4.3.box

Los repositorios en local están en esta ruta ~/.vagrant.d/boxes

En la imagen se puede ver el proceso

Exportando maquina virtual a box

Ahora para utilizarla creamos un nuevo fichero Vagrantfile y utilizar el nombre local/UbuntuNoble24 que es la maquina que hemos creado de la siguiente forma:

Vagrant.configure("2") do |config|
  config.vm.box = "netveloper/ubuntu-24.04"
  config.vm.hostname = "test-server"
end

Ejecutamos desde el terminal

vagrant up

Y empezará a crear el nuevo servidor Ubuntu Server con la plantilla que acabamos de crear.

Para acceder al servidor utilizamos el comando

vagrant ssh

y nos presenta el terminal de un servidor.

Podemos utilizarlo como servidor de desarrollo instalando por ejemplo MySql, Apache2, etc ..

Para parar el servidor salimos del mismo con exit y desde el terminal del hosts ejecutar vagrant halt para pararlo y para destruirlo por completo / eliminarlo vagrant -f destroy

Servidor creado con Vagrant

Y esto es todo, feliz programming!!!
Saludos
Alex
:-)
/


Si te ha gustado el artículo compartelo en:      




Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN


ARCHIVO

Publicidad

.