Debugging y logs en Vagrant
Debugging y logs en Vagrant usando vagrant up --debug
Saber hacer debugging y leer logs en Vagrant es esencial cuando algo no funciona como esperas. Aquí te explico todo de manera clara:
🛠️ Debugging en Vagrant
Cuando algo falla en Vagrant (por ejemplo, vagrant up no levanta bien, o vagrant ssh no conecta), puedes usar niveles de log y modos de debug para saber qué está pasando.
🛠️Crear un proyecto
Procedemos a crear un proyecto en vagrant como lo explico en primeros pasos con vagrant, creamos un directorio llamado proyecto-vagrant y ejecutamos:
vagrant init
Esto creara en el directorio el archivo proyecto-vagrant vagrantfile el cual vamos a agregar el box "ubuntu/bionic64" de momento, nos deberá quedar de la siguiente forma:
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
end
Iniciamos vagrant
vagrant up
Vemos que ha creado la maquina virtual en virtualbox y vemos que por defecto a dejado las siguientes caracteristicas en esta máquina virtual.
🧱 Modos de Debugging
👉 Usar la variable de entorno VAGRANT_LOG
En los sistemas Linux y Mac, esto se puede hacer anteponiendo al vagrant comando una declaración de variable ambiental:
VAGRANT_LOG=info vagrant up
En Windows, se requieren varios pasos:
set VAGRANT_LOG=info
vagrant up
1️⃣ Aumentar el nivel de detalle en los comandos
📜 Esto te muestra un log extremadamente detallado en consola:
- Qué pasos está siguiendo Vagrant
- Qué errores está recibiendo
- Comunicación con VirtualBox, VMware, etc.
Otros niveles posibles:
infowarnerrordebug(el más detallado)
2️⃣ Redirigir el log a un archivo
Si quieres guardar los logs en un archivo para revisarlo con calma:
VAGRANT_LOG=debug vagrant up &> debug.log
Así tendrás todo el log en el archivo debug.log.
3️⃣ Modo Verbose
Otra opción menos "ruda" que debug es info:
VAGRANT_LOG=info vagrant up
Muestra mensajes más claros pero no tan abrumadores.
4️⃣ Usar vagrant --debug
Otra forma muy directa es:
vagrant up --debug
Esto es equivalente a VAGRANT_LOG=debug.
🧠 ¿Dónde guarda Vagrant información interna?
-
Directorio de configuración general:
~/.vagrant.d/ -
Carpeta de estados de proyecto:
.vagrant/dentro del directorio donde tienes tuVagrantfile.
Ahí encontrarás:
- Información de la máquina
- IDs de las VMs
- Logs de sesiones
🔥 Casos comunes de uso del Debug
| Problema | Solución con Debug |
|---|---|
Fallo en vagrant up |
Verifica en debug si es problema de red, plugin, box dañada |
| SSH no conecta | Mira el debug para ver si el puerto SSH fue correctamente mapeado |
| Plugins de Vagrant fallan | Revisa el trace completo para ver cuál plugin causó el error |
| Vagrant no detecta VirtualBox | Debug muestra si faltan drivers, permisos o configuraciones |
🎯 Consejos prácticos
- No te asustes: en modo debug, Vagrant genera MUCHA salida. Busca palabras como
ERROR,FAILED,TIMEOUT. - Atención a errores SSH: si ves problemas como "Authentication failed", suele ser mala configuración de las claves públicas.
- Versiona tu entorno: si todo falla, considera destruir la VM (
vagrant destroy) y levantarla limpia (vagrant up).
📋 Resumen rápido
| Comando | Función |
|---|---|
VAGRANT_LOG=debug vagrant up |
Ejecuta en modo debug |
vagrant up --debug |
Alternativa para debug directo |
VAGRANT_LOG=info vagrant up |
Logs menos ruidosos |
&> archivo.log |
Redirige salida a un archivo |