# A04 - Ámbito dtic-DASUTEN > Manifiesto de Ámbito | Referencia: [`adn/01_ontologia.md`](../../../adn/01_ontologia.md) ## Identificación | Campo | Valor | | :--- | :--- | | **Código** | A04 | | **Nombre** | Infraestructura y Sistema DASUTEN | | **Estado** | ✅ Completado y Validado (2026-04-15) | | **Inicio** | 23/02/2026 | | **Fin Estimado** | Por definir (operación continua) | ## Objetivo El ámbito **dtic-DASUTEN** engloba todas las operaciones relacionadas con la infraestructura, migración y mantenimiento del sistema de gestión administrativa de DASUTEN (Departamento de Acción Social Universitaria Tecnológica Nacional). **DASUTEN** es la obra social de empleados, docentes y alumnos de la Universidad Tecnológica Nacional, con oficina en la Facultad Regional La Rioja pero bajo dependencia de la **sede central en el Rectorado (Buenos Aires)**. Este ámbito cubre: 1. **Infraestructura virtualizada** — Hipervisor Proxmox VE (`srv-dasu`) con VMs Windows (SQL Server, PC cliente). 2. **Migración de sistema** — Traslado del sistema de gestión desde servidores de la Facultad a infraestructura independiente. 3. **Operación en modo Workgroup** — Desde 2026-03-27, se adoptó enfoque sin Domain Controller (P2601.09), reduciendo complejidad de red. 4. **Independencia operativa** — Facilitar la gestión desde Rectorado si fuera necesario. 5. **Pipeline de backups automatizado** — Desde 2026-04-15, sistema de backups FULL/diferenciales vía Google Drive con validación de integridad (DBCC CHECKDB). 6. **Zona horaria configurada** — `dasu-sql4` en UTC-3 (Argentina Standard Time) para correcta visualización de datos en el sistema desktop. ## 📜 Contexto Histórico — Lecciones Aprendidas (Enfoque con DC Descartado) > **Documento completo:** [`_hist/P2601.legacy_lecciones_aprendidas.md`](_hist/P2601.legacy_lecciones_aprendidas.md) **Período:** 23/02/2026 — 27/03/2026 (enfoque con Domain Controller) **Estado:** 🛑 Descartado por recursos insuficientes **Enfoque actual:** Workgroup sin DC (P2601.09) — ✅ Operativo desde 15/04/2026 ### Arquitectura Original (Descartada) ``` srv-dasu (Proxmox VE) └── vmbr1 (NAT 10.0.100.x) ├── VM 100: dc-dasuten — Domain Controller AD DS + DNS ├── VM 101: sql-dasuten — SQL Server 2019 Core └── VM 102: pcv-dasu0 — Windows 10 LTSC ``` ### Causas del Fracaso | Recurso | Disponible | Requerido (3 VMs) | Déficit | |:---|:---|:---|:---| | **RAM** | 15 GB | ~20 GB | -5 GB | | **vCPU** | 6 núcleos | 8+ | -2 vCPU | | **Disco** | 94 GB thin | ~180 GB | -86 GB | ### Señales de Alerta (Ignoradas) - Backups fallan por espacio insuficiente (26/02/26) - VMs lentas desde el inicio - Caídas intermitentes del Domain Controller - Complejidad de red creciente (NAT + tunneling + subnet router) ### Decisión de Pivot (27/03/2026) Se adoptó el enfoque **Workgroup sin DC**, reduciendo: - **De 3 VMs a 2 VMs** (SQL + PCV) - **Red NAT a red plana** (DHCP del ISP) - **Windows Auth a SQL Auth** (sin dependencia de Kerberos) ### Lección Clave > *"La arquitectura más simple que funciona es mejor que la arquitectura 'correcta' que apenas se sostiene."* **Recomendación para futuros proyectos:** Validar recursos disponibles ANTES de comprometerse con una arquitectura compleja. Ver checklist en el documento de lecciones aprendidas. ## Herramientas | Herramienta | Uso | | :--- | :--- | | **Proxmox VE 9.1** | Virtualización y gestión de VMs (vmbr0, vzdump) | | **Windows Server 2022** | SO para SQL Server (dasu-sql4) — UTC-3 Argentina | | **Windows 10 LTSC** | VM de pruebas y cliente (dasu-pcv) | | **SQL Server 2019** | Motor de base de datos relacional (autenticación mixta) | | **OpenSSH** | Administración remota nativa de VMs Windows (puerto 7022) | | **VZDump** | Resguardos offline de VMs (stop mode, zstd) | | **Tailscale** | VPN de acceso remoto (subnet router, cuenta `pcdasu0@frlr.utn.edu.ar`) | | **ADN CLI `dasuten`** | `./adn/tools/run dasuten ` — herramientas específicas del ámbito | | **ADN CLI `dron`** | `./adn/tools/run dron` — vigía de tareas largas con auto-bitácora | | **ADN CLI `bkps`** | `./adn/tools/run bkps run dasuten_full/diferencial` — pipeline de backups | ## Nodos Involucrados ### Núcleo DASUTEN (Exclusivos del Ámbito) | Nodo | IP / VMID | Rol en el Ámbito | | :--- | :--- | :--- | | **srv-dasu** | `192.168.1.13` (DHCP ISP) / Tailscale `100.112.46.104` | Hipervisor Proxmox VE (Libre de red académica) | | **dasu-sql4** (VM 106) | `192.168.1.11` (DHCP ISP) / Tailscale `100.107.15.82` | SQL Server 2019 — Motor de base de datos (UTC-3 Argentina) | | **dasu-pcv** (VM 107) | `192.168.1.15` (DHCP ISP) | VM de pruebas / Cliente de referencia (Workgroup) | | **dasu-pc** | `192.168.1.20` (DHCP ISP) | PC física cliente en oficina DASUTEN (usuaria: Andrea Almirón) | ### Nodos de Soporte | Nodo | IP | Rol en el Ámbito | | :--- | :--- | :--- | | **srv-ns8** | `10.0.10.8` | Gestión central, GIT, Dashboard P2601 | ### VMs Preservadas (Apagadas — Enfoque Anterior con DC) | Nodo | VMID | Estado | Nota | | :--- | :--- | :--- | :--- | | **dasu-srvv-dc** | 100 | 🛑 Apagada | Controlador de Dominio AD DS (P2601.06-08) | | **dasu-srvv-sql** | 101 | 🛑 Apagada | SQL Server en dominio (P2601.06-08) | | **dasu-pcv** | 102 | 🛑 Apagada | VM de pruebas en dominio (P2601.07.01) | | **dasu-sql2** | 103 | 🛑 Apagada | SQL Server 2022 Core — reemplazado por dasu-sql4 | | **dasu-pcv2** | 104 | 🛑 Apagada | VM de pruebas — reemplazada por dasu-pcv (107) | ## Topología de Red (Modo Workgroup — P2601.09) ``` ┌─────────────────────────────────────────────────────────────────┐ │ ROUTER ISP (Gateway: 192.168.1.1) │ │ Subred: 192.168.1.0/24 │ └─────────────────────┬───────────────────────────────────────────┘ │ ┌────────────┴─────────────────────────────────┐ │ │ ↓ ↓ ┌─────────────────┐ ┌─────────────────────────┐ │ dasu-pc │ │ srv-dasu (Proxmox) │ │ 192.168.1.20 │ │ 192.168.1.13 │ │ (PC Física) │ │ │ └─────────────────┘ │ vmbr0: 192.168.1.1/24 │ │ ├── VM 106: .11 (SQL) │ │ └── VM 107: .15 (PCV) │ └─────────────────────────┘ ``` **Características:** - Red plana del ISP — todas las máquinas en la misma subred `192.168.1.0/24` - Sin Domain Controller — autenticación SQL mixta (SQL Auth, no Windows Integrated) - Tailscale para acceso remoto — cuenta `pcdasu0@frlr.utn.edu.ar` - Gateway: `192.168.1.1` (router ISP) ## Tareas Configuradas | ID | Descripción | Tipo | | :--- | :--- | :--- | | `backup_sql2` | Backup vzdump de dasu-sql2 (VM 103) | proxmox | | `backup_pcv2` | Backup vzdump de dasu-pcv2 (VM 104) | proxmox | | `db_migrar` | Migrar base de datos DASUTEN desde backup .bak | sqlcmd | | `tailscale_up` | Activar/verificar Tailscale en nodos | tailscale | ## Comandos Compuestos | ID | Descripción | Tareas | | :--- | :--- | :--- | | `full_backup` | Backup completo de VMs DASUTEN | backup_sql2 → backup_pcv2 | | `db_restore` | Restaurar DB DASUTEN en dasu-sql2 | db_migrar | ## Flujo de Trabajo Típico ``` 1. Registrar evento en bitácora (inicio de jornada DASUTEN) 2. Ejecutar: ./adn/tools/run dasuten 3. Monitorear progreso (dron para tareas largas) 4. Cerrar evento en bitácora con hora de fin ``` ### Subcomandos ADN disponibles ```bash ./adn/tools/run dasuten help # Ayuda ./adn/tools/run dasuten db:migrar # Migrar/base de datos DASUTEN ./adn/tools/run dasuten backup # Backup individual de VM ./adn/tools/run dasuten status # Estado del ámbito ./adn/tools/run dron lanzar --evento AUTO --nota "X" -- ./adn/tools/run dasuten ``` ## Planes Asociados | Código | Nombre | Estado | | :--- | :--- | :--- | | [A04.P001](A04.P001_Red-SrvDasu.md) | Reconfiguración de Red srv-dasu | ✅ | | [A04.P002](A04.P002_Integracion-DASU-PC.md) | Integración dasu-pc a Dominio | ⏸️ (Pausado — enfoque cambiado) | | [A04.P003](A04.P003_AD-Join.md) | Unión de pc-dasu0 al Dominio | ⏸️ (Pausado — enfoque cambiado) | | [A04.P004](A04.P004_Unificacion-Redes-ISP.md) | Unificación de Redes: Subred ISP | ⏸️ (Pausado — enfoque cambiado) | | [A04.P005](A04.P005_DASUTEN-sin-DC.md) | DASUTEN sin Domain Controller | ✅ Completado y Validado | | [A04.P006](A04.P006_Backups-DASUTEN.md) | Backups y Refresco de Base de Datos | ✅ Completado y Validado | ## 🛸 Sistema de Drones (Operación Autónoma) **Herramienta:** `./adn/tools/run dron ` | Subcomando | Función | | :--- | :--- | | `dron lanzar --evento ID/AUTO --nota "X" -- ` | Lanzar tarea en background con auto-bitácora | | `dron flota` | Dashboard compacto de la flota | | `dron salud` | Health check activo (detecta zombies/estancados) | | `dron estado` | Estado detallado de cada dron | | `dron limpiar` | Limpiar tareas completadas/fallidas | **Evento AUTO:** Crea evento de bitácora automáticamente y lo cierra al finalizar. El `tarea_id` del dron se incluye en la descripción del evento con formato `🛸 dron_HHMMSS_PID: `. **Ejemplo:** ```bash ./adn/tools/run dron lanzar --evento AUTO --nota "Backup dasu-sql2" -- ./adn/tools/run dasuten backup sql2 ``` ## Dashboard P2601 - **URL**: `https://ns8.frlr.utn.edu.ar/P2601/` - **Tipo**: Aplicación web estática (HTML/JS/CSS) servida por Nginx. - **Métricas**: Timeline de hitos, barras de progreso, desglose Físico/Remoto por hito. - **Actualización**: Las métricas se alimentan de las etiquetas parseadas de las bitácoras. ## 🔄 Armonía Integral **Última actualización:** 2026-04-15 (migración completada + validación usuaria + pipeline de backups) | Documento | Estado | Notas | | :--- | :--- | :--- | | `docs/contexto/IA.md` | ✅ Actualizado | Lecciones DASUTEN agregadas (backups, zona horaria) | | `A04_dtic-DASUTEN.md` | ✅ Actualizado | Estado: COMPLETADO Y VALIDADO | | `A04.P001_Red-SrvDasu.md` | ✅ Actualizado | Encabezado estandarizado | | `A04.P002_Integracion-DASU-PC.md` | ✅ Actualizado | Estado: PAUSADO (enfoque cambiado) | | `A04.P003_AD-Join.md` | ✅ Actualizado | Estado: PAUSADO (enfoque cambiado) | | `A04.P004_Unificacion-Redes-ISP.md` | ✅ Actualizado | Estado: PAUSADO (parcialmente implementado) | | `A04.P005_DASUTEN-sin-DC.md` | ✅ Actualizado | Versión 6.0 — COMPLETADO Y VALIDADO | | `A04.P006_Backups-DASUTEN.md` | ✅ Actualizado | Versión 1.3 — Pipeline FULL validado + migración TZ | | `_hist_P2601_dasuten.md` | ✅ Archivado | Manifiesto legacy preservado | --- ## Referencias - **CLI ADN**: `./adn/tools/run dasuten help` - **Código fuente**: [`adn/tools/cli/dasuten.rb`](../../../adn/tools/cli/dasuten.rb) (por crear) - **ADN Ontología**: [`adn/01_ontologia.md`](../../../adn/01_ontologia.md) - **Bitácoras**: `./adn/tools/run db evento:listar --ambito dtic-DASUTEN` - **Legacy (archivado)**: [`_hist_P2601_dasuten.md`](_hist_P2601_dasuten.md) — manifiesto anterior del proyecto - **Lecciones aprendidas (DC descartado)**: [`_hist/P2601.legacy_lecciones_aprendidas.md`](_hist/P2601.legacy_lecciones_aprendidas.md) — caso de estudio completo