RUNNING.md 4.0 KB

Instrucciones de Ejecución - VirtManager

Iniciar el Servidor

Con sudo (necesario para operaciones de libvirt)

cd /home/creylopez/virtmanager
source venv/bin/activate
sudo -E /home/creylopez/virtmanager/venv/bin/uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

La opción -E preserva las variables de entorno del usuario.

Verificar que el servidor está corriendo

En otra terminal:

curl http://localhost:8000/vms

Deberías obtener una respuesta JSON con la lista de VMs.

Prueba Rápida de Creación de VM

  1. Acceder a la interfaz web:

    • Abre http://localhost:8000 en tu navegador
  2. Subir una ISO (si no tienes):

    • Ve a la sección "Upload ISO"
    • Selecciona un archivo ISO
    • Haz clic en "Upload"
  3. Crear una VM:

    • Ve a la sección "Create VM"
    • Completa los campos:
      • Name: nombre de la VM (ej: mivm)
      • Memory: memoria en MiB (ej: 2048)
      • Disk Size: tamaño del disco en GB (ej: 20)
      • CPUs: número de CPUs (ej: 2)
      • ISO: selecciona la ISO subida
    • Haz clic en "Create VM"
  4. Verificar creación:

    • Si todo va bien, verás un mensaje de éxito
    • La VM aparecerá en la lista de VMs
    • El disco se creará en /var/lib/libvirt/images/

Agregar Discos a una VM Existente

⚠️ REQUISITOS IMPORTANTES:

  • La máquina virtual DEBE estar parada (shut off)
  • El nombre del disco NO debe existir previamente

Pasos:

  1. Parar la VM:

    • En la lista de VMs, haz clic en "Stop" en la VM destino
    • Espera a que cambie el estado a "shut off"
  2. Agregar el disco:

    • Ve a la sección "Add Disk to VM"
    • Selecciona la VM (debe estar parada)
    • Ingresa un nombre para el disco (ej: datos, backup, etc.)
    • Ingresa el tamaño en GB (ej: 50)
    • Haz clic en "Add Disk"
  3. Verificar:

    • Si todo va bien, verás un mensaje confirmando que se agregó el disco
    • El disco estará asignado a un dispositivo virtio (vda, vdb, etc.)

Troubleshooting

Si aparece error "undefined"

  1. Verifica los logs del servidor:

    # En la terminal donde corre el servidor, busca lineas que empiezan con [CREATE_VM]
    
  2. Verifica los permisos:

    sudo -l | grep create_disk
    ls -l /home/creylopez/virtmanager/create_disk.sh
    
  3. Verifica que libvirt está corriendo:

    sudo systemctl status libvirtd
    
  4. Verifica el espacio en disco:

    df -h /var/lib/libvirt/images/
    

Si el disco se crea pero falla la VM

Esto generalmente significa que hay un problema con la definición de XML de la VM. Los logs del servidor mostrarán el error exacto de libvirt.

Posibles causas:

  • El archivo ISO no existe o no es accesible
  • La ruta del ISO está incorrecta
  • Problema con la arquitectura o tipo de máquina en el XML

Detener el Servidor

En la terminal donde corre el servidor, presiona Ctrl+C

Logs

El servidor mostrará logs con prefijo [CREATE_VM] cuando se crea una VM. Estos logs incluyen:

  • Rutas de archivos
  • Estado de creación de disco
  • Errores de libvirt
  • Mensajes de éxito o fallo

Ejemplo de log exitoso:

[CREATE_VM] Starting VM creation: name=mivm, memory=2048, disk_size=20, cpus=2
[CREATE_VM] Using ISO path: /var/lib/libvirt/images/isos/ubuntu-22.04.iso
[CREATE_VM] Script path: /home/creylopez/virtmanager/create_disk.sh
[CREATE_VM] Disk creation return code: 0
[CREATE_VM] Disk created successfully: /var/lib/libvirt/images/mivm.qcow2
[CREATE_VM] Generated MAC: 52:54:00:ab:cd:ef
[CREATE_VM] XML template prepared for VM definition
[CREATE_VM] Defining VM with libvirt...
[CREATE_VM] VM defined successfully. Starting VM...
[CREATE_VM] VM started successfully!

Notas Importantes

  1. El servidor debe ejecutarse con sudo para acceso total a libvirt
  2. El script create_disk.sh debe estar configurado en sudoers sin contraseña
  3. La ruta del script se calcula automáticamente desde la ruta del módulo app
  4. Los errores de libvirt se mostrarán claramente en los logs y en la respuesta del frontend