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.
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:
Pools: Se sincronizan automáticamente al conectar nodo
VMs: Se actualizan en tiempo real
Storage: Se detectan automáticamente
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:
Error de conexión a Proxmox:
Verificar credenciales
Comprobar conectividad de red
Revisar configuración SSL
Sincronización fallida:
Verificar permisos de API
Revisar logs de Proxmox
Comprobar configuración de pools
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