|
@@ -6,10 +6,7 @@ Una API REST y interfaz web para gestionar máquinas virtuales en Ubuntu usando
|
|
|
|
|
|
|
|
- **Gestión completa de VMs**: Crear, listar, iniciar, detener y eliminar máquinas virtuales.
|
|
- **Gestión completa de VMs**: Crear, listar, iniciar, detener y eliminar máquinas virtuales.
|
|
|
- **Configuración de arranque**: Cambiar el orden de arranque de las VMs (disco duro, CD-ROM, etc.).
|
|
- **Configuración de arranque**: Cambiar el orden de arranque de las VMs (disco duro, CD-ROM, etc.).
|
|
|
-- **Consola web**: Acceso a la consola de las VMs vía navegador usando noVNC, sin necesidad de clientes VNC locales.
|
|
|
|
|
-- **Interfaz web intuitiva**: Interfaz basada en Bootstrap para gestionar VMs fácilmente.
|
|
|
|
|
-- **Auto-inicio**: Servicio systemd para que la aplicación se inicie automáticamente con el sistema.
|
|
|
|
|
-- **Documentación interactiva**: API documentada con Swagger UI.
|
|
|
|
|
|
|
+- **Subida de ISOs**: Sube imágenes ISO directamente desde la interfaz web para usar en la creación de VMs.
|
|
|
|
|
|
|
|
## Instalación
|
|
## Instalación
|
|
|
|
|
|
|
@@ -22,6 +19,12 @@ sudo apt update
|
|
|
sudo apt install -y libvirt-daemon-system libvirt-dev pkg-config python3-libvirt python3-gi novnc websockify
|
|
sudo apt install -y libvirt-daemon-system libvirt-dev pkg-config python3-libvirt python3-gi novnc websockify
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
+Crea el directorio para ISOs (opcional, se crea automáticamente):
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+sudo mkdir -p /var/lib/libvirt/images/isos
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
### Instalación del Proyecto
|
|
### Instalación del Proyecto
|
|
|
|
|
|
|
|
1. Clona o descarga el proyecto en `/home/creylopez/virtmanager` (o ajusta las rutas según corresponda).
|
|
1. Clona o descarga el proyecto en `/home/creylopez/virtmanager` (o ajusta las rutas según corresponda).
|
|
@@ -124,6 +127,12 @@ export LIBVIRT_IMAGES_PATH=/ruta/a/imagenes
|
|
|
- `name`: Nombre del archivo (sin extensión).
|
|
- `name`: Nombre del archivo (sin extensión).
|
|
|
- `size`: Tamaño en GB.
|
|
- `size`: Tamaño en GB.
|
|
|
|
|
|
|
|
|
|
+### ISOs
|
|
|
|
|
+
|
|
|
|
|
+- `GET /isos`: Lista todas las ISOs subidas.
|
|
|
|
|
+- `POST /upload-iso`: Sube un archivo ISO.
|
|
|
|
|
+ - Body: Archivo multipart (`file`).
|
|
|
|
|
+
|
|
|
### Consola
|
|
### Consola
|
|
|
|
|
|
|
|
- `GET /console/{vm_name}`: Obtiene la URL para la consola web noVNC de la VM.
|
|
- `GET /console/{vm_name}`: Obtiene la URL para la consola web noVNC de la VM.
|
|
@@ -133,8 +142,9 @@ export LIBVIRT_IMAGES_PATH=/ruta/a/imagenes
|
|
|
Accede a `http://localhost:8000` en tu navegador.
|
|
Accede a `http://localhost:8000` en tu navegador.
|
|
|
|
|
|
|
|
- **Lista de VMs**: Tabla con estado (badges coloreados), acciones (iniciar/detener/eliminar/consola).
|
|
- **Lista de VMs**: Tabla con estado (badges coloreados), acciones (iniciar/detener/eliminar/consola).
|
|
|
-- **Crear VM**: Formulario para especificar nombre, memoria, disco e ISO.
|
|
|
|
|
|
|
+- **Crear VM**: Formulario para especificar nombre, memoria, disco e ISO (seleccionar de ISOs subidas).
|
|
|
- **Set Boot Order**: Selecciona una VM y define el orden de arranque (ej. "hd,cdrom").
|
|
- **Set Boot Order**: Selecciona una VM y define el orden de arranque (ej. "hd,cdrom").
|
|
|
|
|
+- **Upload ISO**: Sube archivos ISO para usar en la creación de VMs.
|
|
|
- **Consola**: Botón para abrir la consola web en una nueva pestaña (solo para VMs corriendo).
|
|
- **Consola**: Botón para abrir la consola web en una nueva pestaña (solo para VMs corriendo).
|
|
|
|
|
|
|
|
## Documentación de la API
|
|
## Documentación de la API
|