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. .. image:: /_static/screenshots/10_django_admin.jpg :alt: Django Admin Panel :width: 100% :align: center | 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 .. code-block:: python # 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 .. code-block:: python # 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. .. code-block:: python # 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 .. code-block:: python # 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 .. code-block:: python # 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 .. code-block:: python # 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 .. code-block:: python # 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 .. code-block:: python # 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**: .. code-block:: python # 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 :doc:`sección de troubleshooting <../reference/troubleshooting>`. Próximos Pasos -------------- * :doc:`Configurar nodos Proxmox ` * :doc:`Gestionar pools ` * :doc:`Configurar permisos de storage ` * :doc:`Gestionar usuarios `