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.

Automatiza tu entorno de desarrollo con Vagrant y Shell Scripts
oscar Escrito por oscar 24 April 2025 474 0

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.

provision en vagrant
provision en vagrant

Requisitos antes de iniciar

✅ 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)


Comentario

Debe aceptar antes de enviar