Panel de Administración

El panel de administración de NoxPanel proporciona control total sobre la infraestructura Proxmox, permitiendo gestionar nodos, pools, usuarios, redes y sincronización de datos.

Note

El panel de administración proporciona control total sobre la infraestructura Proxmox.

Django Admin Panel

Acceso al Panel

  • URL: /admin/

  • Usuario: Superusuario (admin)

  • Permisos: Acceso completo a todas las funcionalidades

Note

Solo los usuarios con permisos de superusuario pueden acceder al panel de administración.

Secciones Principales

VMS

Gestión completa de máquinas virtuales:

  • Virtual Machines: Ver, crear, modificar y eliminar VMs

  • VM Snapshots: Gestión de instantáneas

  • VM Backups: Configuración y gestión de backups

  • Resource Quotas: Control de límites de recursos

# Ejemplo: Crear VM desde admin
from vms.models import VM, Pool
from vms.services import ProxmoxService

# Crear VM en pool específico
pool = Pool.objects.get(name='production')
vm = VM.objects.create(
    vmid=100,
    name='web-server',
    pool=pool,
    cores=4,
    memory_mb=8192,
    disk_gb=100
)

IP Addresses

Gestión de direcciones IP:

  • IP Pools: Configurar rangos de IPs

  • IP Addresses: Asignar y liberar IPs

  • VLANs: Configurar redes virtuales

  • Network Interfaces: Gestión de interfaces

# Ejemplo: Asignar IP a VM
from vms.models import IPPool, IPAddress

pool = IPPool.objects.get(name='production-network')
ip_address = pool.allocate_ip(
    address='192.168.1.100',
    vm_id=100,
    user=request.user
)

IP Pools

Configuración de pools de direcciones IP:

  • Network Configuration: Configurar rangos CIDR

  • Gateway Settings: Configurar puertas de enlace

  • DNS Configuration: Servidores DNS

  • VLAN Assignment: Asignar VLANs

Storage Permissions

Control granular de acceso a almacenamiento:

  • Storage Access: Permitir/denegar acceso a storages

  • Pool-based Permissions: Permisos por pool

  • User-based Permissions: Permisos por usuario

  • Storage Types: dir, zfspool, rbd, etc.

# Ejemplo: Configurar permisos de storage
from vms.models import StoragePermission, Pool

# Permitir storage a todo el pool
pool = Pool.objects.get(name='development')
StoragePermission.objects.create(
    pool=pool,
    storage_name='local-lvm',
    storage_type='lvmthin',
    is_allowed=True
)

Pool Memberships

Gestión de membresías de usuarios en pools:

  • User Assignment: Asignar usuarios a pools

  • Role Management: Owner, Admin, User, Read-only

  • Permission Control: Control granular de permisos

  • Audit Trail: Registro de cambios

# Ejemplo: Asignar usuario a pool
from vms.models import PoolMembership, Pool
from django.contrib.auth import get_user_model

User = get_user_model()
user = User.objects.get(username='john')
pool = Pool.objects.get(name='development')

PoolMembership.objects.create(
    user=user,
    pool=pool,
    role='admin'
)

Pools

Gestión de pools de recursos:

  • Resource Pools: Organizar VMs y usuarios

  • Quota Management: Límites de recursos

  • Usage Tracking: Monitoreo de uso

  • Pool Configuration: Configuración avanzada

# Ejemplo: Crear pool con cuotas
from vms.models import Pool

pool = Pool.objects.create(
    name='production',
    description='Pool de producción',
    max_vms=50,
    max_cores=200,
    max_memory_gb=1024,
    max_storage_gb=5000
)

Proxmox Nodes

Configuración de nodos Proxmox:

  • Node Configuration: Host, puerto, credenciales

  • Connection Testing: Probar conectividad

  • Primary Node: Nodo principal

  • Load Balancing: Distribución de carga

# Ejemplo: Configurar nodo Proxmox
from vms.models import ProxmoxNode

node = ProxmoxNode.objects.create(
    name='pve-cluster-01',
    host='192.168.1.10',
    port=8006,
    user='root@pam',
    password='secure_password',
    verify_ssl=False,
    is_primary=True
)

VLANs

Gestión de redes virtuales:

  • VLAN Configuration: Configurar VLANs

  • Network Segmentation: Segmentación de red

  • VLAN Assignment: Asignar a pools de IP

  • Network Isolation: Aislamiento de redes

Sincronización Automática

NoxPanel mantiene sincronización bidireccional con Proxmox:

Proceso de Sincronización:

  1. Pools: Se sincronizan automáticamente al conectar nodo

  2. VMs: Se actualizan en tiempo real

  3. Storage: Se detectan automáticamente

  4. Users: Se sincronizan desde Proxmox

# Ejemplo: Sincronizar pools desde Proxmox
from vms.proxmox_sync import ProxmoxSyncService

sync_service = ProxmoxSyncService()
synced_count = sync_service.sync_pools_from_proxmox()
print(f"Sincronizados {synced_count} pools")

Configuración de Sincronización:

  • Auto-sync: Habilitado por defecto

  • Manual sync: Disponible desde admin

  • Error handling: Manejo de errores robusto

  • Logging: Registro detallado de operaciones

Monitoreo y Logs

Audit Log:

  • Action Tracking: Todas las acciones se registran

  • User Activity: Actividad de usuarios

  • System Events: Eventos del sistema

  • Error Logging: Registro de errores

# Ejemplo: Registrar acción
from vms.models import AuditLog

AuditLog.log_action(
    user=request.user,
    action='vm_create',
    obj=vm,
    success=True,
    details={'vmid': vm.vmid, 'pool': vm.pool.name}
)

Métricas en Tiempo Real:

  • CPU Usage: Uso de CPU por VM

  • Memory Usage: Uso de memoria

  • Network Traffic: Tráfico de red

  • Storage Usage: Uso de almacenamiento

Comandos Útiles

Desde Django Shell:

# Conectar a shell
python manage.py shell

# Probar conexión a Proxmox
from vms.services import get_proxmox_service
service = get_proxmox_service()
nodes = service.get_nodes()

# Sincronizar pools
from vms.proxmox_sync import ProxmoxSyncService
sync = ProxmoxSyncService()
sync.sync_pools_from_proxmox()

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

Problemas Comunes:

  1. Error de conexión a Proxmox:

    • Verificar credenciales

    • Comprobar conectividad de red

    • Revisar configuración SSL

  2. Sincronización fallida:

    • Verificar permisos de API

    • Revisar logs de Proxmox

    • Comprobar configuración de pools

  3. Permisos de storage:

    • Verificar configuración de storage

    • Comprobar permisos de usuario

    • Revisar configuración de pools

Note

Para más detalles sobre troubleshooting, consulta la sección de troubleshooting.

Próximos Pasos

  • Configurar nodos Proxmox

  • Gestionar pools

  • Configurar permisos de storage

  • Gestionar usuarios