Automatiza tu entorno de desarrollo con Vagrant y Shell Scripts
Aprende a automatizar la configuración de tus entornos de desarrollo usando Vagrant y scripts de shell. Tutorial paso a paso con ejemplos.

En el desarrollo moderno, la automatización es clave para mejorar la productividad y evitar errores manuales. Una de las herramientas más versátiles para la creación de entornos virtuales es Vagrant, y su integración con scripts de shell permite aprovisionar máquinas de forma simple y repetible.
En este artículo te mostraré cómo puedes usar shell scripts en Vagrant para instalar dependencias, configurar software y preparar tu máquina virtual sin mover un dedo. Si estás cansado de repetir configuraciones manualmente cada vez que inicias un nuevo proyecto, este tutorial es para ti.

Requisitos antes de iniciar
- Realizar la instalación de vargrant
- Lee sobre Vagrant file
- Aprende a crear una máquina virtual con vagrant
✅ Pasos para Aprovisionar con Shell Scripts en Vagrant
1️⃣ Crear el archivo Vagrantfile
o inicia un proyecto
En la raíz de tu proyecto, ejecuta:
vagrant init
Luego crea la siguiente estructura de carpetas en el host:
proyecto-vagrant/
├── Vagrantfile
├── script.sh
Edita el Vagrantfile
para agregar el aprovisionamiento con shell:
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
# Configurar redes en vagrant
config.vm.network "forwarded_port", guest: 80, host: 8080
# Aprovisionamiento con un script shell externo
config.vm.provision "shell", path: "script.sh"
end
Revisa el post de Configurar redes en vagrant
2️⃣ Crear el script de aprovisionamiento (script.sh
)
En el mismo directorio, crea un archivo script.sh
:
#!/bin/bash
echo "Actualizando sistema..."
sudo apt-get update -y
echo "Instalando Apache..."
sudo apt-get install apache2 -y
echo "Habilitando servicio Apache..."
sudo systemctl enable apache2
sudo systemctl start apache2
echo "¡Servidor listo!"
Dale permisos de ejecución:
chmod +x script.sh
3️⃣ Levantar la máquina con Vagrant
vagrant up
Este comando iniciará la máquina virtual y ejecutará el script de shell automáticamente.
Respuesta
....
default: Guest Additions Version: 6.1.50
default: VirtualBox Version: 7.0
==> default: Mounting shared folders...
default: /vagrant => C:/code/vagrant
==> default: Running provisioner: shell...
default: Running: C:/Users/OSCARD~1/AppData/Local/Temp/vagrant-shell20250609-8344-uvkhfu.sh
default: Actualizando sistema...
default: Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [128 kB]
default: Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
...
Puedes repetir el aprovisionamiento con:
vagrant provision
4️⃣ Verifica que el servidor esté funcionando
Desde el navegador, accede a:
http://localhost:8080 (ajusta el puerto si haces redirección)