Flujo de Configuración Inicial

Esta guía detalla el proceso completo y obligatorio para configurar NoxPanel desde cero hasta tener un entorno completamente funcional para la creación de máquinas virtuales.

Note

IMPORTANTE: Este flujo debe seguirse en el orden exacto indicado. Saltarse pasos o cambiar el orden puede resultar en configuraciones incompletas o errores.

Prerequisitos

Antes de comenzar, asegúrate de tener:

  • Proxmox VE instalado y funcionando

  • Credenciales de administrador de Proxmox (usuario root@pam)

  • Acceso de red desde NoxPanel a los nodos Proxmox

  • Permisos de administrador en NoxPanel

Fase 1: Configuración del Nodo Proxmox

Objetivo: Conectar NoxPanel con tu infraestructura Proxmox

Paso 1.1: Agregar Nodo Proxmox

  1. Acceder al Panel de Administración:

    • URL: /admin/

    • Usuario: admin (superusuario)

  2. Navegar a VMS > Proxmox Nodes

  3. Hacer clic en «Add Proxmox Node»

  4. Completar la configuración:

    Name: pve-cluster-01
    Host: 192.168.1.10
    Port: 8006
    User: root@pam
    Password: tu_password_seguro
    Verify SSL: False (para desarrollo)
    Is Primary: True
    Priority: 1
    
  5. Hacer clic en «Save»

Paso 1.2: Probar Conexión

  1. Seleccionar el nodo creado

  2. Hacer clic en «Test Connection»

  3. Verificar que aparezca «✅ Conectado»

Important

Sincronización Automática: Al probar la conexión exitosamente, NoxPanel automáticamente:

  • Importa todos los pools existentes en Proxmox

  • Sincroniza las VMs existentes

  • Detecta los storages disponibles

  • Actualiza el estado de conexión

Resultado Esperado: - Nodo Proxmox conectado y verificado - Pools de Proxmox importados automáticamente - VMs existentes sincronizadas

Fase 2: Configuración de Pools

Objetivo: Organizar recursos y definir límites por pool

Paso 2.1: Revisar Pools Importados

  1. Navegar a VMS > Pools

  2. Verificar que aparezcan los pools importados desde Proxmox

  3. Revisar la configuración de cada pool:

    Pool ID: nombre-del-pool
    Name: Nombre Descriptivo
    Description: Descripción del pool
    Max VMs: 10
    Max Cores: 32
    Max Memory (GB): 64
    Max Storage (GB): 500
    

Paso 2.2: Configurar Límites de Recursos

Para cada pool, ajustar los límites según tus necesidades:

  1. Editar el pool

  2. Configurar límites apropiados:

    Max VMs: 20          # Máximo de VMs por pool
    Max Cores: 64        # Máximo de cores totales
    Max Memory (GB): 128 # Máximo de memoria en GB
    Max Storage (GB): 1000 # Máximo de almacenamiento
    
  3. Guardar cambios

Note

Sincronización Bidireccional: Los cambios en pools se sincronizan automáticamente con Proxmox mediante signals de Django.

Resultado Esperado: - Pools configurados con límites apropiados - Sincronización bidireccional funcionando - Recursos organizados por pool

Fase 3: Configuración de Permisos de Storage

Objetivo: Definir qué storages puede usar cada pool/usuario

Paso 3.1: Sincronizar Storages desde Proxmox

  1. Navegar a VMS > Storage Permissions

  2. Hacer clic en «Sync Storages from Proxmox»

  3. Verificar que aparezcan todos los storages disponibles

Paso 3.2: Configurar Permisos por Pool

Para cada pool, definir qué storages puede usar:

  1. Hacer clic en «Add Storage Permission»

  2. Configurar permisos:

    Storage Name: local-lvm
    Storage Type: lvm
    Pool: [Seleccionar pool específico]
    User: [Dejar vacío para aplicar a todo el pool]
    Is Allowed: True
    
  3. Repetir para cada storage que el pool deba usar

Ejemplo de Configuración:

Pool "desarrollo":
- local-lvm: ✅ Permitido
- local: ✅ Permitido
- nfs-storage: ❌ Denegado

Pool "producción":
- local-lvm: ✅ Permitido
- nfs-storage: ✅ Permitido
- local: ❌ Denegado

Resultado Esperado: - Storages sincronizados desde Proxmox - Permisos configurados por pool - Control granular de acceso a almacenamiento

Fase 4: Configuración de Redes (VLANs y IP Pools)

Objetivo: Configurar segmentación de red y asignación de IPs

Paso 4.1: Crear VLANs

  1. Navegar a VMS > VLANs

  2. Hacer clic en «Add VLAN»

  3. Configurar VLAN:

    VLAN ID: 100
    Name: Red Desarrollo
    Description: VLAN para VMs de desarrollo
    
  4. Repetir para cada VLAN necesaria

Paso 4.2: Crear Pools de IP

  1. Navegar a VMS > IP Pools

  2. Hacer clic en «Add IP Pool»

  3. Configurar pool de IP:

    Name: Pool Desarrollo
    Network: 192.168.100.0/24
    Gateway: 192.168.100.1
    VLAN: Red Desarrollo
    Pool: [Seleccionar pool de recursos]
    DNS Servers: 8.8.8.8,8.8.4.4
    
  4. Repetir para cada pool de IP necesario

Ejemplo de Configuración de Red:

VLAN 100 - Desarrollo:
- Pool IP: 192.168.100.0/24
- Gateway: 192.168.100.1
- Asignado a: Pool "desarrollo"

VLAN 200 - Producción:
- Pool IP: 192.168.200.0/24
- Gateway: 192.168.200.1
- Asignado a: Pool "producción"

Resultado Esperado: - VLANs configuradas - Pools de IP creados y asignados - Segmentación de red definida

Fase 5: Gestión de Usuarios y Asignación a Pools

Objetivo: Crear usuarios y asignarlos a pools con roles apropiados

Paso 5.1: Crear Usuarios

  1. Navegar a Authentication and Authorization > Users

  2. Hacer clic en «Add User»

  3. Configurar usuario:

    Username: juan.desarrollo
    Email: juan@empresa.com
    First Name: Juan
    Last Name: Pérez
    Is Active: True
    Is Staff: False
    Is Superuser: False
    
  4. Establecer contraseña segura

  5. Guardar usuario

Paso 5.2: Asignar Usuarios a Pools

  1. Navegar a VMS > Pool Memberships

  2. Hacer clic en «Add Pool Membership»

  3. Configurar membresía:

    User: juan.desarrollo
    Pool: desarrollo
    Role: user
    

Roles Disponibles:

  • Owner: Control total del pool

  • Admin: Administración de VMs y configuración

  • User: Creación y gestión de VMs

  • Read Only: Solo visualización

Important

Sincronización Automática con Proxmox: Al asignar un usuario a un pool:

  • Se crea automáticamente el usuario en Proxmox

  • Se asignan permisos ACL apropiados

  • Se configura acceso al pool específico

Ejemplo de Asignaciones:

Usuario: juan.desarrollo
- Pool: desarrollo (Role: user)
- Pool: testing (Role: admin)

Usuario: maria.produccion
- Pool: producción (Role: owner)

Resultado Esperado: - Usuarios creados en NoxPanel - Usuarios sincronizados con Proxmox - Permisos asignados correctamente - Acceso controlado por roles

Fase 6: Verificación y Pruebas

Objetivo: Verificar que todo el sistema funciona correctamente

Paso 6.1: Verificar Sincronización

  1. En el Admin Panel, verificar:

    • Proxmox Nodes: Estado «Conectado»

    • Pools: Todos los pools visibles

    • VMs: VMs existentes sincronizadas

    • Storage Permissions: Permisos configurados

    • IP Pools: Pools de IP creados

Paso 6.2: Probar Acceso de Usuario

  1. Cerrar sesión como admin

  2. Iniciar sesión con un usuario normal

  3. Verificar que:

    • Solo ve los pools asignados

    • Puede acceder al dashboard

    • Ve las VMs de sus pools

    • Tiene acceso a las funciones según su rol

Paso 6.3: Probar Creación de VM

  1. Como usuario normal, intentar crear una VM:

    • Seleccionar pool asignado

    • Elegir storage permitido

    • Seleccionar IP del pool asignado

    • Configurar recursos dentro de los límites

  2. Verificar que la VM se crea correctamente

  3. Verificar que aparece en Proxmox

  4. Verificar que la IP se asigna correctamente

Resultado Esperado: - Sistema completamente funcional - Usuarios pueden crear VMs - Recursos y permisos funcionando - Sincronización bidireccional operativa

Comandos de Verificación

Desde Django Shell:

# Conectar a shell
python manage.py shell

# Verificar nodos
from vms.models import ProxmoxNode
nodes = ProxmoxNode.objects.filter(is_active=True)
for node in nodes:
    print(f"Node: {node.name} - Status: {node.last_connection_status}")

# Verificar pools
from vms.models import Pool
pools = Pool.objects.all()
for pool in pools:
    print(f"Pool: {pool.name} - VMs: {pool.current_vms}")

# Verificar permisos de storage
from vms.models import StoragePermission
permissions = StoragePermission.objects.filter(is_allowed=True)
for perm in permissions:
    print(f"Storage: {perm.storage_name} - Pool: {perm.pool}")

Desde Admin Interface:

  • Test Connections: Probar conexiones de nodos

  • Sync Pools: Sincronizar pools manualmente

  • Sync Storage: Sincronizar permisos de storage

  • Clear Cache: Limpiar caché del sistema

Troubleshooting Común

Problema: Nodo no se conecta Solución: - Verificar credenciales - Comprobar conectividad de red - Revisar configuración SSL

Problema: Pools no se sincronizan Solución: - Verificar permisos de API en Proxmox - Revisar logs de Proxmox - Comprobar configuración de pools

Problema: Usuario no puede crear VMs Solución: - Verificar membresía en pool - Comprobar permisos de storage - Revisar límites de recursos

Problema: IPs no se asignan Solución: - Verificar configuración de IP pools - Comprobar asignación de VLAN - Revisar configuración de red

Próximos Pasos

Una vez completado este flujo:

  • Configurar monitoreo y alertas

  • Implementar backups automáticos

  • Configurar alta disponibilidad

  • Optimizar rendimiento

Note

IMPORTANTE: Este flujo debe completarse antes de permitir a usuarios finales crear VMs. Un sistema mal configurado puede resultar en problemas de seguridad, recursos o funcionalidad.