docs: Actualización de contexto IA, Drones, Candados y nuevos nodos

This commit is contained in:
Ricardo Monla
2026-04-08 18:09:04 -03:00
parent cad987ce7f
commit fb8c8eefe5
139 changed files with 900 additions and 36345 deletions
@@ -5,8 +5,8 @@
**Código:** A04.P005
**Fecha:** 27 de marzo de 2026
**Autor:** Sistema ADN
**Versión:** 2.2
**Estado:** 🚧 EN EJECUCIÓN (Fase 2 completada, Fase 3 pendiente — Creación VM PC Cliente)
**Versión:** 2.5
**Estado:** 🚧 EN EJECUCIÓN (Nueva VM 105 dasu-sql3 - Fase 4.N1-4.N3 completadas)
**Dependencia:** A04.P001 (Red srv-dasu)
## 📋 Resumen Ejecutivo
@@ -80,8 +80,22 @@ Crear dos VMs nuevas (SQL Server + PC cliente) en `srv-dasu`, instalar el sistem
- [x] **3.6:** Instalar Tailscale VPN (cuenta `pcdasu0@frlr.utn.edu.ar`). Anotar IP Tailscale asignada. ✅ **IP: 100.98.225.100**
- [ ] **3.7:** Instalar herramientas cliente SQL (SSMS o sqlcmd) si es necesario.
- [ ] **3.8:** Verificar conectividad hacia dasu-sql2 (ping + test TCP 1433).
- [ ] **3.9:** ⚠️ PROBLEMA: VMs sin conectividad de red IP. Estado: 192.168.1.x NO responde a ping desde srv-dasu. Investiguando causa (posible conflicto de bridge/red).
- [x] **3.9:** Instalar qemu-guest-agent en VM dasu-pcv2 para backups desatendidos (ACPI shutdown) ✅.
### ⏳ **FASE 4: Nueva VM dasu-sql3 (VM 105)** *(2026-04-08)*
- [x] **4.N1:** Crear VM 105 (dasu-sql3) ✅. Eliminar VMs 103 y 104 problemáticas, crear VM 105 limpia.
- [x] **4.N2:** ISO Windows Server 2022 Español ✅. Usar `Windows_Server_2022_Spanish_Evaluation.iso`.
- [x] **4.N3:** Discos SATA ✅. 60GB (sata0) para SO + 120GB (sata1) para datos SQL.
- [ ] **4.N4:** Finalizar instalación Windows.
- [ ] **4.N5:** Instalar VirtIO drivers.
- [ ] **4.N6:** Configurar hostname `dasu-sql3` y Workgroup.
- [ ] **4.N7:** Configurar red DHCP.
- [ ] **4.N8:** Instalar OpenSSH Server (puerto 7022).
- [ ] **4.N9:** Instalar Tailscale.
- [ ] **4.N10:** Instalar SQL Server 2019.
### ⏳ **FASE 4: Instalación del Sistema DASUTEN**
- [x] **4.1:** Obtener backup/script de la base de datos DASUTEN del sistema actual. ✅ (Descargado localmente archivo de 604MB y confirmado acceso vía SMB al crudo `.bak`)
@@ -0,0 +1,124 @@
# Plan: Conocimiento del Contexto y Ámbito de Trabajo
> **Ámbito:** A09 — dtic-DIIAA
**Código:** A09.P001
**Fecha:** 08 de abril de 2026
**Autor:** Lic. Ricardo Monla
**Versión:** 1.2
**Estado:** 🚧 En Curso (Fase 3 completada)
**Dependencia:** Ninguna
## 📋 Resumen Ejecutivo
Este plan tiene como objetivo establecer el conocimiento completo del contexto y ámbito de trabajo del Departamento de Investigación en Inteligencia Artificial y Automatizaciones (DIIAA).
**Alcances:**
- Comprender la estructura institucional
- Identificar nodos y recursos disponibles
- Establecer conexiones y accesos
- Documentar el estado actual de infraestructura
## 🎯 Objetivos
1. **Conocer el contexto institucional** — DTIC, FRLR, UTN
2. **Identificar el nodo principal** — srv-ns8 y sus servicios
3. **Establecer accesos seguros** — Candados y bóveda
4. **Configurar nginx nativo** — Servidor web para aplicaciones DIIAA
5. **Documentar estado actual** — Infraestructura y servicios existentes
## 📅 Fases de Implementación
### FASE 1: Reconocimiento Institucional ✅ COMPLETADA
- [x] Documentar estructura organizacional (DTIC → DIIAA)
- [x] Identificar responsables y roles
- [x] Mapear dependencias institucionales
### FASE 2: Reconocimiento de Infraestructura ✅ COMPLETADA
- [x] Identificar nodos disponibles
- [x] Verificar conectividad y accesos
- [x] Listar servicios existentes en srv-ns8
### FASE 3: Configuración de Accesos ✅ COMPLETADA
- [x] Optimizar herramienta `candados` (help resumida/completa)
- [x] Documentar métodos para cargar contraseñas en variables
- [x] Actualizar README de candados
- [x] Sanear bóveda (eliminar duplicados, renombrar claves)
### FASE 3.5: Mejora de Drones ✅ COMPLETADA
- [x] Auto-detección de nodo por hostname
- [x] Ámbito automático heredado del nodo
- [x] Unificación de vistas (events + entradas)
- [x] Registro automático en bitácora sin intervención manual
### FASE 4: Setup de nginx Nativo ⏳ PENDIENTE
- [ ] Instalar nginx en srv-ns8 (nativo, no Docker)
- [ ] Configurar servidor virtual para dtic-DIIAA
- [ ] Habilitar acceso web al ámbito
### FASE 5: Documentación y Puesta en Marcha ⏳ EN CURSO
- [x] Crear manifiesto del ámbito A09
- [x] Crear plan A09.P001
- [ ] Crear ficha del nodo srv-ns8 (ya existe en `nodos/`)
- [ ] Documentar configuración nginx
- [x] Registrar en bitácora actividades
## 🎯 Criterios de Éxito
| Criterio | Verificación |
| :--- | :--- |
| **Manifiesto creado** | `A09_dtic-DIIAA.md` existe |
| **Plan documentado** | `A09.P001_Contexto-y-Ambito.md` existe |
| **Accesos configurados** | SSH a srv-ns8 funcional |
| **nginx operativo** | Servicio web accesible |
| **Bitácora actualizada** | Eventos registrados |
## 📝 Notas Técnicas
### Stack Tecnológico
- **Servidor Web:** nginx (nativo en srv-ns8)
- **Gestión de Secretos:** candados (AES-256-GCM)
- **Automatización:** ADN CLI + Drones
- **Bitácora:** Sistema ADN con web de visualización
### Nodo Principal: srv-ns8
| Campo | Valor |
| :--- | :--- |
| **Hostname** | srv-ns8.frlr.utn.edu.ar |
| **IP** | 10.0.10.8 |
| **SO** | Debian GNU/Linux 12 (bookworm) |
| **Rol** | Servidor de aplicaciones y gestión |
| **Servicios** | nginx, DNS (srvv-dns), otros |
## 🔄 Armonía Integral
**Última actualización:** 2026-04-08 09:50 (Fases 1-3 completadas, drones mejorados)
| Documento | Estado | Notas |
| :--- | :--- | :--- |
| `A09_dtic-DIIAA.md` | ✅ Creado | Manifiesto del ámbito con pilares ADN |
| `A09.P001_Contexto-y-Ambito.md` | ✅ Fases 1-3.5 completadas | Plan actualizado (v1.2) |
| `nodos/srv-ns8.md` | ✅ Existe | Ficha técnica en `nodos/` (global) |
| `adn/tools/candados/candados.rb` | ✅ Optimizado | Help resumida + completa (--help) |
| `adn/tools/candados/README.md` | ✅ Actualizado | Sincronizado con help |
| `adn/tools/cli/dron/ejecutor.rb` | ✅ Mejorado | Auto-detección de nodo y ámbito |
| `adn/tools/cli/dron/dispatcher.rb` | ✅ Mejorado | Opción --nodo agregada |
| `adn/tools/db/core/bitacora_db.rb` | ✅ Mejorado | Vista unificada events + entradas |
| `docs/contexto/IA.md` | ✅ Actualizado | Documentación de drones mejorados |
| nginx config | ⏳ Pendiente | Configuración nativa en srv-ns8 |
---
## Referencias
- **Ámbito de referencia:** `docs/ambito/dtic-DNS/A07_dtic-DNS.md`
- **ADN Ontología:** `adn/01_ontologia.md`
- **Bitácoras:** `./adn/tools/run db evento:listar --ambito dtic-DIIAA`
+123
View File
@@ -0,0 +1,123 @@
# A09 - Ámbito dtic-DIIAA
> Manifiesto de Ámbito | Referencia: [`adn/01_ontologia.md`](../../../adn/01_ontologia.md)
## Identificación
| Campo | Valor |
| :--- | :--- |
| **Código** | A09 |
| **Nombre** | Departamento de Investigación en Inteligencia Artificial y Automatizaciones |
| **Estado** | 🚧 En Implementación |
| **Inicio** | 08/04/2026 |
| **Fin Estimado** | Continuo (investigación y desarrollo) |
## Objetivo
El ámbito **dtic-DIIAA** engloba todas las operaciones relacionadas con la investigación, desarrollo y administración de sistemas de Inteligencia Artificial y Automatizaciones de la Facultad.
Este ámbito cubre:
1. **Investigación en IA** — Desarrollo y aplicación de modelos de inteligencia artificial.
2. **Automatizaciones** — Scripts y sistemas para automatización de tareas operativas.
3. **Administración de servidores** — Gestión de servidores y sistemas de altas prestaciones.
4. **Capacitación** — Formación y transferencia de conocimientos en IA y automatizaciones.
## Contexto Institucional
```
Lic. Ricardo MONLA
└── Departamento de Investigación en IA y Automatizaciones (DIIAA)
└── Dirección de Tecnologías de la Información y Comunicación (DTIC)
└── Facultad Regional La Rioja (FRLR)
└── Universidad Tecnológica Nacional (UTN)
```
## Funciones Principales
1. **Administración de servidores y sistemas de altas prestaciones**
2. **Investigación y desarrollo en Inteligencia Artificial**
3. **Automatización de procesos operativos**
4. **Soporte técnico especializado**
## Ecosistema ADN
Este ámbito opera bajo el **Ecosistema ADN** — el núcleo autónomo que gestiona la ontología, bitácoras, seguridad y procesos del proyecto.
### Pilares Fundamentales
El ADN se rige por tres principios rectores que guían toda decisión operativa:
| Pilar | Descripción |
| :--- | :--- |
| **Menos es Más** | Cada componente debe justificar su existencia. Eliminar lo innecesario, consolidar lo disperso, evitar duplicación. |
| **Armonía Integral** | Todo está conectado. Si un dato cambia en un sitio, debe propagarse a todos los demás. La consistencia es obligatoria. |
| **Mejora Continua** | El ADN evoluciona. Las buenas prácticas emergentes se formalizan como nuevas reglas (Evolución Progresiva). |
### Hebras del ADN
| # | Hebra | Descripción |
| :--- | :--- | :--- |
| **01** | **Ontología** | Define identidad, nodos, ámbitos y topología de red |
| **02** | **Bitácora** | Registro diario de eventos, triggers y métricas |
| **03** | **Seguridad** | Protocolos de red, candados y bóveda cifrada |
| **04** | **Iconografía** | Taxonomía visual de estados e iconos semánticos |
| **05** | **Directivas IA** | Premisas de trabajo para Inteligencia Artificial |
| **06** | **Gobernanza** | Idioma, nomenclatura, coherencia documental, resguardo |
| **07** | **Proyectos** | Gestión de proyectos transversales |
| **08** | **Procesos** | Procesos automatizados sobre infraestructura |
**CLI Principal:** `./adn/tools/run <subcomando>`
| Categoría | Comandos frecuentes |
| :--- | :--- |
| **Bitácoras** | `db evento:crear`, `db evento:actualizar`, `jornada iniciar/cerrar` |
| **Nodos** | `nodos info <nombre>`, `nodos listar`, `nodos agrupar` |
| **Seguridad** | `candados run <clave> '<cmd>'`, `candados authorize` |
| **Drones** | `dron lanzar`, `dron flota`, `dron salud`, `dron limpiar` |
> **Drones:** Subsistema del ADN para tareas en background con auto-bitácora. Ver [`adn/tools/cli/dron.rb`](../../../adn/tools/cli/dron.rb)
## Nodos Involucrados
### Nodo Principal
| Nodo | IP | Rol en el Ámbito |
| :--- | :--- | :--- |
| **srv-ns8** | `10.0.10.8` | Workstation / Docker Host / Hipervisor — servidor principal de aplicaciones y gestión |
> **Ficha técnica completa:** [`nodos/srv-ns8.md`](../../../nodos/srv-ns8.md)
### Nodos de Soporte
| Nodo | IP | Rol en el Ámbito |
| :--- | :--- | :--- |
| **srv-pmox1** | `10.0.10.201` | Hipervisor Proxmox (anfitrión de VMs) |
| **srvv-dns** | `10.0.10.2` | Servidor DNS (soporte de resolución) |
> Ver fichas completas en [`nodos/`](../../../nodos/)
## Planes Asociados
| Código | Nombre | Estado |
| :--- | :--- | :--- |
| [A09.P001](A09.P001_Contexto-y-Ambito.md) | Conocimiento del Contexto y Ámbito de Trabajo | 🚧 En Curso |
## 🔄 Armonía Integral
**Última actualización:** 2026-04-08 (Creación del ámbito A09 - dtic-DIIAA)
| Documento | Estado | Notas |
| :--- | :--- | :--- |
| `A09_dtic-DIIAA.md` | ✅ Creado | Manifiesto del ámbito |
| `A09.P001_Contexto-y-Ambito.md` | 🚧 En curso | Plan de conocimiento del contexto |
| `nodos/srv-ns8.md` | ✅ Existe | Ficha técnica en `nodos/` |
---
## Referencias
- **Ecosistema ADN**: [`adn/00_indice.md`](../../../adn/00_indice.md)
- **Ontología**: [`adn/01_ontologia.md`](../../../adn/01_ontologia.md)
- **Bitácoras**: `./adn/tools/run db evento:listar --ambito dtic-DIIAA`
- **Nodos**: [`nodos/`](../../../nodos/)
@@ -0,0 +1,80 @@
#!/bin/bash
# Script para agregar registros CNAME de DKIM en srvv-dns
# Ejecutar: sudo bash A07.P002_agregar_dkim.sh
ZONA_FILE="/docker/coreDNS/zones/frlr.utn.edu.ar.db"
BACKUP_FILE="/docker/coreDNS/zones/bkp_260407_preDKIM_frlr.utn.edu.ar.db"
echo "🔧 Agregando registros DKIM para Microsoft 365..."
# 1. Crear backup
echo " 1. Creando backup..."
cp "$ZONA_FILE" "$BACKUP_FILE"
if [ $? -eq 0 ]; then
echo " ✅ Backup creado: $BACKUP_FILE"
else
echo " ❌ Error al crear backup"
exit 1
fi
# 2. Verificar si los registros ya existen
if grep -q "selector1._domainkey" "$ZONA_FILE"; then
echo " ⚠️ El registro selector1._domainkey ya existe"
else
echo " ✅ Registro selector1._domainkey no existe (ok para agregar)"
fi
if grep -q "selector2._domainkey" "$ZONA_FILE"; then
echo " ⚠️ El registro selector2._domainkey ya existe"
else
echo " ✅ Registro selector2._domainkey no existe (ok para agregar)"
fi
# 3. Agregar registros CNAME de DKIM
# Los agrego después de los registros NS existentes
echo " 2. Agregando registros CNAME de DKIM..."
# Crear archivo temporal con los nuevos registros
cat >> "$ZONA_FILE" << 'EOF'
; =============================================
; Registros CNAME para DKIM (Microsoft 365)
; Agregados: 2026-04-07 - A07.P002
; =============================================
selector1 IN CNAME selector1-frlr-utn-edu-ar._domainkey.o365frlrutneduar.onmicrosoft.com.
selector2 IN CNAME selector2-frlr-utn-edu-ar._domainkey.o365frlrutneduar.onmicrosoft.com.
EOF
if [ $? -eq 0 ]; then
echo " ✅ Registros DKIM agregados"
else
echo " ❌ Error al agregar registros"
echo " Restaurando backup..."
cp "$BACKUP_FILE" "$ZONA_FILE"
exit 1
fi
# 4. Actualizar serial de zona (incrementar último dígito)
echo " 3. Actualizando serial de zona..."
SERIAL_ACTUAL=$(grep -A5 'IN SOA' "$ZONA_FILE" | grep -oE '[0-9]{10}' | head -1)
NUEVO_SERIAL=$((SERIAL_ACTUAL + 1))
sed -i "s/$SERIAL_ACTUAL/$NUEVO_SERIAL/" "$ZONA_FILE"
echo " Serial: $SERIAL_ACTUAL$NUEVO_SERIAL"
# 5. Forzar reload de CoreDNS
echo " 4. Forzando reload de CoreDNS..."
docker kill --signal=HUP coredns 2>/dev/null || echo " (signal enviado)"
echo " ✅ CoreDNS notificado"
echo ""
echo "✅ ¡Completado!"
echo ""
echo "📋 Verificación:"
echo " dig selector1._domainkey.frlr.utn.edu.ar CNAME"
echo " dig selector2._domainkey.frlr.utn.edu.ar CNAME"
echo ""
echo "⏱️ Esperar 15-30 minutos para propagación"
echo ""
echo "🔐 Luego habilitar DKIM en:"
echo " https://security.microsoft.com/dkimv2"
@@ -0,0 +1,26 @@
=== Backup DNS frlr.utn.edu.ar ===
== REGISTROS MX ==
0 frlr-utn-edu-ar.mail.protection.outlook.com.
== REGISTROS TXT (SPF, DKIM, etc) ==
"v=spf1 mx ip4:190.114.205.2 include:spf.protection.outlook.com -all"
"MS=ms22480661"
"google-site-verification=vZpwlfgIM_oSwlxfhvCY3zvbLEkRzHz8AFUDsVPmgzo"
== REGISTROS A ==
190.114.205.20
== REGISTROS CNAME ==
== REGISTROS NS ==
ns1.frlr.utn.edu.ar.
ns3.utn.edu.ar.
== DKIM LOCAL (mail._domainkey) ==
"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOMtst0Un3kUnMr+azAfJ1zho2"
"l5+Zg7E575exs30JJi5R044EqIRIB3cqxL8QN5pawb0meiHOn6D5S+LEaGKd4+jxPW"
"WY/haivsuUP8tJuNcV53LdlpiTcBcrvtJLPCOsxgQl7XofghR8+dNEZ66uKNI+w7/"
"7BoMeOHMivP8auwIDAQAB"
== DMARC ==
+45
View File
@@ -0,0 +1,45 @@
Ese mensaje de error es el "mapa del tesoro". Te está confirmando que el sistema no puede habilitar el DKIM porque todavía no has publicado los registros en el DNS de la UTN.
Aquí tienes los datos exactos que debes copiar y pegar en tu panel de control de DNS (donde gestionas el dominio frlr.utn.edu.ar):
Debes crear estos 2 registros CNAME:
Registro 1:
Tipo: CNAME
Nombre (Host): selector1._domainkey
Valor (Apunta a): selector1-frlr-utn-edu-ar._domainkey.o365frlrutneduar.onmicrosoft.com
Registro 2:
Tipo: CNAME
Nombre (Host): selector2._domainkey
Valor (Apunta a): selector2-frlr-utn-edu-ar._domainkey.o365frlrutneduar.onmicrosoft.com
¿Dónde se hace esto?
Vuelve a la pantalla que me mostraste antes (la del listado de registros MX, SPF y CNAME).
Busca un botón que diga "Agregar registro" o "Administrar DNS".
Carga los dos registros de arriba.
El paso final (Paciencia)
Una vez que los guardes en el DNS:
Espera al menos 15 a 30 minutos (aunque el cartel diga 4 días, suele ser rápido, pero no instantáneo).
Regresa a la pantalla de DKIM (la de la imagen anterior).
Intenta mover el interruptor a Habilitado.
Nota técnica: Si el panel de DNS te pide el nombre completo, asegúrate de que sea selector1._domainkey.frlr.utn.edu.ar. Algunos paneles añaden el dominio automáticamente, otros no.
Cuando ese interruptor se ponga en azul, ¡Gmail dejará de rechazarte! ¿Sabes dónde está el panel para agregar estos registros nuevos?
Enlaces
https://security.microsoft.com/dkimv2
https://admin.cloud.microsoft/?#/Domains/Details/frlr.utn.edu.ar
+94 -17
View File
@@ -168,21 +168,28 @@ La vista principal de la Bitácora Web ahora agrupa las entradas **por Ámbito**
## 🔄 Armonía Integral — Procedimiento de Actualización Documental
**Cuándo aplicar:** Después de cualquier cambio significativo (nueva herramienta, refactorización, cambio de estructura, plan completado, etc.).
### ¿Qué significa "Aplicar Armonía Integral"?
### Checklist obligatorio (en orden):
**Armonía Integral** es el principio rector que establece que **todo está conectado** en el ecosistema ADN. Cuando se dice "Aplicar Armonía", se refiere a:
| # | Documento | Qué actualizar | Cuándo |
|---|-----------|----------------|--------|
| 1 | **Bitácora** | Evento con resultados y próximos pasos | Siempre (antes de salir) |
| 2 | `docs/contexto/IA.md` | Estado de drones, lecciones aprendidas, quick changes | Si hay cambios operativos o de flujo |
| 3 | `docs/ambito/<ámbito>/<Axx>_manifiesto.md` | Tabla de planes, herramientas, nodos, estado | Si el cambio afecta al ámbito |
| 4 | `docs/ambito/<ámbito>/<Axx.Pxxx>_plan.md` | Estado del plan, fases, hitos | Si el plan fue modificado/completado |
> **Actualizar/optimizar los documentos correspondientes para mantener la consistencia del sistema.**
Si un dato cambia en un sitio, **debe propagarse** a todos los demás documentos relevantes.
### 📋 Qué documentos actualizar cuando se dice "Aplicar Armonía"
| Orden | Documento | Qué actualizar | Cuándo corresponde |
| :--- | :--- | :--- | :--- |
| **1** | **Bitácora** | Evento con resultados y próximos pasos | **Siempre** (antes de finalizar sesión) |
| **2** | `docs/contexto/IA.md` | Lecciones aprendidas, estado de herramientas, cambios operativos | Si hubo cambios en el flujo de trabajo o herramientas |
| **3** | `docs/ambito/<AMBITO>/Axx_<AMBITO>.md` | Tabla de planes, herramientas, nodos, estado del ámbito | Si el cambio afecta al ámbito de trabajo |
| **4** | `docs/ambito/<AMBITO>/Axx.Pxxx_*.md` | Estado del plan, fases completadas, hitos alcanzados | Si un plan fue modificado, completado o iniciado |
### Ejemplo de aplicación (2026-04-06):
```
Cambio: Reestructuración de dtic-DASUTEN a estándar A03
→ 1. Bitácora: Evento #XXXX registrado
→ 2. Contexto/IA.md: No requería (sin cambios operativos)
→ 3. A04_dtic-DASUTEN.md: Manifiesto creado + tabla de planes actualizada
@@ -226,22 +233,37 @@ Para información completa sobre todas las hebras del ADN, consultar `adn/00_ind
| `docs/ambito/dtic-DASUTEN/` | Ámbito A04: Infraestructura DASUTEN — `./adn/tools/run dasuten` |
| `docs/ambito/dtic-DNS/` | Ámbito A07: Administración DNS — `./adn/tools/run dns` |
| `docs/ambito/dtic-NOTAS/` | Ámbito A08: Sistema de Notas e Informes — Web de plantillas |
| `adn/tools/cli/dron.rb` | Vigía tareas largas — `./adn/tools/run dron` |
| `docs/ambito/dtic-DIIAA/` | Ámbito A09: IA y Automatizaciones — `./adn/tools/run dron` |
| `adn/tools/cli/dron.rb` | Drones: tareas background con auto-bitácora — `./adn/tools/run dron` |
**Última actualización:** 2026-04-07 22:30 (A08 creado - Web de notas funcional; A07.P002: Triada completa)
**Última actualización:** 2026-04-08 09:50 (A09 creado; Drones con auto-bitácora y ámbito automático)
**Próxima revisión:** Al inicio de cada sesión
---
## 🤖 Estado de Drones (Verificación 2026-04-06 13:17)
## 🤖 Drones - Sistema Mejorado (2026-04-08)
**Flota:** 2 drones detectados → ambos completados y limpiados
- `dron_125106_654316` — Evento #1395: "Test diario de vuelo" (`sleep 3`) → ✔ Completado (0min)
- `dron_125505_657901` — Evento #1398: "Test diario v2" (`echo Hola...`) → ✔ Completado
**Mejora implementada:** Auto-detección de nodo y ámbito automático en bitácora.
**Diagnóstico:** Drones operaron correctamente pero quedaron como "zombies" (PID muerto, estado=vigilando). El health check (`dron salud`) los auto-reparó y `dron limpiar` los removió.
**Cambios realizados:**
1. **Auto-detección de nodo:** El dron detecta automáticamente el nodo por hostname
2. **Ámbito automático:** El ámbito se hereda del nodo mediante JOIN en la consulta
3. **Unificación de vistas:** `evento:listar` muestra tanto `events` (drones) como `entradas` (tradicional)
**Lección:** El sistema de auto-reparación funciona. Verificar flota al inicio de sesión con `./adn/tools/run dron salud`.
**Flujo de trabajo:**
```bash
# Al iniciar sesión: verificar flota
./adn/tools/run dron salud
./adn/tools/run dron limpiar # Si hay zombies
# Para tareas en background (auto-registra en bitácora)
./adn/tools/run dron lanzar --nota "Descripción de la tarea" -- <comando>
# Opcional: especificar nodo manualmente
./adn/tools/run dron lanzar --nodo srv-ns8 --nota "Tarea" -- <comando>
```
**Importante:** Los drones registran automáticamente en bitácora con el ámbito correcto. Para SSH interactivo, usar `candados run`.
---
@@ -266,4 +288,59 @@ Para información completa sobre todas las hebras del ADN, consultar `adn/00_ind
2. **Reputación de dominio** - Gmail requiere período de "calentamiento" (24-72 horas típico)
3. **Historial del dominio** - Correos anteriores sin autenticación afectan reputación inicial
**Próximo paso:** Agregar DMARC con `p=none` (solo monitoreo) para completar triada de autenticación.
**Próximo paso:** Agregar DMARC con `p=none` (solo monitoreo) para completar triada de autenticación.
---
## 🛠️ Optimización de `candados` (2026-04-08)
**Contexto:** La herramienta `candados.rb` es crítica para la seguridad del ecosistema. Se requiere que cualquier IA sepa usarla correctamente sin exponer contraseñas.
**Cambios realizados:**
1. **Help resumida (default):** Se muestra al ejecutar sin argumentos o con comando desconocido
- Mensaje conciso con lo esencial
- Los dos métodos para cargar variables (`run` y `load`)
- Lista de comandos principales
- Indica usar `--help` para más detalles
2. **Help completa (`--help` o `-h`):**
- Explicación detallada de cada método
- Ejemplos de uso
- Flujo de trabajo típico
- Advertencias de seguridad
3. **README actualizado:** Sincronizado con la ayuda integrada
**Lección:** La documentación integrada en la CLI es más efectiva que archivos externos. Cualquier IA que ejecute `candados` sin argumentos verá inmediatamente cómo usarla de forma segura.
**Comando para verificar:**
```bash
ruby adn/tools/candados/candados.rb # Help resumida
ruby adn/tools/candados/candados.rb --help # Help completa
```
---
## 🛠️ Lecciones Aprendidas - DASUTEN VMs (2026-04-08)
**Problema:** VMs dasu-sql2 y dasu-pcv2 mostraban "running" pero sin conectividad IP ni respuesta a ping.
**Diagnóstico:**
- Tabla ARP mostraba MACs en bridge pero sin respuesta ICMP
- Tailscale reportaba "offline, last seen 1d ago"
- qemu-guest-agent no estaba corriendo dentro de las VMs
**Causa probable:** Windows Server Core iniciaba pero sin stack de red activo o servicios de red fallando.
**Solución aplicada:** Crear VM 105 (dasu-sql3) limpia con:
- ISO Windows Server 2022 **Español** (no Core evaluation)
- **Discos SATA** (no VirtIO que puede causar problemas)
- 60GB disco para SO + 120GB disco para datos SQL
- virtio drivers integrados
**Nota técnica - LVM-thin:**
- `lvcreate -L` crea volúmenes finos pero requiere espacio físico real
- `lvcreate -V -T pool/thin` crea volúmenes thin que solo usan espacio cuando se escriben
- Verificar con `vgs` y `lvs -a` para diagnosticar espacio
- Thin volumes pueden tener metadata más pequeña que el tamaño virtual