Desarrollo local con Vagrant y VVV

Contents

Introducción al Desarrollo Local con Vagrant y VVV

En el entorno de desarrollo web moderno, recrear de forma precisa el servidor de producción en nuestra máquina local es fundamental para minimizar problemas de compatibilidad, asegurar que las versiones de PHP, MySQL y otras dependencias sean las mismas y garantizar una experiencia de despliegue confiable. Vagrant y VVV (Varying Vagrant Vagrants) se han consolidado como herramientas de referencia para entornos de desarrollo WordPress y aplicaciones PHP en general.

¿Qué es Vagrant

Vagrant es una herramienta de HashiCorp diseñada para crear y gestionar entornos de desarrollo virtualizados de manera simple y reproducible. Se basa en proveedores de virtualización como VirtualBox, VMware o Hyper-V. Con un simple archivo Vagrantfile, podemos definir:

  • Proveedor de virtualización.
  • Sistema operativo de la máquina virtual (box).
  • Configuración de red, puertos y carpetas sincronizadas.
  • Provisionamiento mediante Shell, Ansible, Puppet o Chef.

Documentación oficial de Vagrant: https://www.vagrantup.com

¿Qué es VVV (Varying Vagrant Vagrants)

VVV es un proyecto de WordPress que proporciona un entorno listo para usar con múltiples sitios, gestores de bases de datos, herramientas de CLI y entornos de prueba. Ideal para desarrolladores de temas, plugins y contribuyentes al core de WordPress.

Repositorio oficial de VVV: https://github.com/Varying-Vagrant-Vagrants/VVV

Ventajas de Utilizar Vagrant y VVV

Característica Vagrant VVV
Configuración Reproducible Sí, mediante Vagrantfile Sí, incluye Vagrantfile provision
Soporte WordPress Manual Optimizado nativamente
Herramientas CLI Opcionales wp-cli, composer, etc. preinstalados
Multisitio y Tests Requiere customización Incluido

Requisitos Previos

  • Sistema operativo: Windows, macOS o Linux.
  • VirtualBox (o VMware/Hyper-V) instalado.
  • Vagrant (>= 2.2) instalado.
  • Git para clonar repositorios.
  • Al menos 4 GB de RAM libre para la VM.

Instalación y Configuración de Vagrant

1. Instalación de Vagrant

  1. Descargar e instalar desde https://www.vagrantup.com/downloads.
  2. Verificar versión:
    vagrant --version

2. Crear un proyecto Vagrant básico

mkdir mi-proyecto
cd mi-proyecto
vagrant init ubuntu/focal64

Esto genera un Vagrantfile con la configuración por defecto.

3. Ajustes recomendados en Vagrantfile

Vagrant.configure(2) do config
  config.vm.box = ubuntu/focal64
  config.vm.network private_network, ip: 192.168.56.10
  config.vm.synced_folder ., /var/www/html, type: nfs
  config.vm.provider virtualbox do vb
    vb.memory = 2048
    vb.cpus = 2
  end
  config.vm.provision shell, inline: <<-SHELL
    apt-get update
    apt-get install -y apache2 php php-mysql mysql-client
  SHELL
end
  

Instalación y Configuración de VVV

1. Clonar el repositorio

git clone https://github.com/Varying-Vagrant-Vagrants/VVV.git vvv
cd vvv

2. Personalizar el archivo config.yml

Dentro de la carpeta vvv, existe config/config.yml. Podemos:

  • Definir sitios adicionales:
  • sites:
      my-plugin.test:
        repo: git@github.com:mi-usuario/mi-plugin.git
        hosts:
          - my-plugin.test
  • Ajustar versiones de PHP (7.4, 8.0, 8.1, etc.).

3. Levantar la máquina VVV

vagrant up

Este comando descarga la box recomendada, crea la VM y corre los scripts de provisionamiento. El tiempo inicial puede ser de 10 a 20 minutos.

Comandos Útiles de Vagrant y VVV

Comando Descripción
vagrant up Inicia la VM y aplica provisionamiento.
vagrant ssh Accede por SSH a la VM.
vagrant halt Detiene la VM.
vagrant destroy Elimina la VM y sus datos.
vvv provisioning Vuelve a ejecutar provisionamiento en VVV.
vvv halt Detiene la VM de VVV.

Buenas Prácticas y Consejos

  • Versionamiento del Vagrantfile: Mantén tu Vagrantfile bajo control de versiones para facilitar actualizaciones y revisión de cambios.
  • Copia de seguridad de la base de datos: Automatiza dumps periódicos con wp db export para no perder datos al reiniciar la VM.
  • Actualizaciones de box: Usa vagrant box update y luego vagrant reload --provision para mantener imágenes al día.
  • Uso de snapshots: Con proveedores como VirtualBox, crea snapshots antes de cambios drásticos.
  • Entornos múltiples: Clona carpetas de VVV para probar distintas configuraciones (PHP 7.4 vs 8.1, por ejemplo).

Conclusiones

Implementar un entorno local con Vagrant y VVV aporta un nivel de control, reproducibilidad y eficiencia que difícilmente se logra con instalaciones directas en el sistema operativo. Al aprovechar máquinas virtuales preconfiguradas y escalables, se reducen errores en producción y se agiliza el flujo de trabajo de equipos de desarrollo.

Con esta guía, dispones de los elementos esenciales para configurar, personalizar y mantener tu entorno local, centrándote en WordPress o cualquier aplicación PHP. ¡Empieza hoy mismo y aprovecha la potencia de Vagrant y VVV!



Acepto donaciones de BAT's mediante el navegador Brave 🙂



Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *