🔧 Core & Ámbitos: Commit general de mejoras y nodos pendientes
- Docs: A03 BKP updates y nuevo manifiesto nodo dasu-sql4 - W-Zombi: Nuevas rutas explícitas (exec.rb, ps1.rb) y estado stateful (cmd.json) - Bóveda: candados/.boveda.json modificados al agregar nuevos servidores (sql2, sql3) - Cleanup: Remover token .session de candados - Core API: Fixes en Bitacora_db
This commit is contained in:
@@ -11,5 +11,6 @@
|
||||
"dominio-utnlarioja.intranet:monlaricardo": "eyJpdiI6InFRQ3VNYWlVSHlKMURNdzciLCJ0YWciOiJ1a3hESUZlaEt6enV3UXZxWUFrWXhRPT0iLCJkYXRhIjoiNVNaekdxVyt6dE5WQmhPaXF3PT0ifQ==",
|
||||
"deepseek_key": "eyJpdiI6InRCc2IvL3J4SGNsejgvL04iLCJ0YWciOiJBbjRlMTNXNlZzUGhNSWowSUU1a01nPT0iLCJkYXRhIjoiQXR4azk1aU9sb2QydzNwa0FMTHpjVkJKQTIvZU4wY1U2V2crK3NBbVd1UnRmUGh6In0=",
|
||||
"srv-ns8:rmonla": "eyJpdiI6IlJ4cHZkbFpJQWVsTTl3T1YiLCJ0YWciOiJ3WTZGMDEvNHNsZm1wZm5jMEF4Q1lBPT0iLCJkYXRhIjoibFljUHRYTm44bUxvQjhCa2tBPT0ifQ==",
|
||||
"dasu-sql3:Administrador": "eyJpdiI6IlRiMDh3U1N2aVhTcDYzbzciLCJ0YWciOiI5NVNyUDFlMXlrM0dGRlNqUXhLbEt3PT0iLCJkYXRhIjoiVkp2V09zSjczcS96UktTSlZTOFdBdz09In0="
|
||||
"dasu-sql3:Administrador": "eyJpdiI6IlRiMDh3U1N2aVhTcDYzbzciLCJ0YWciOiI5NVNyUDFlMXlrM0dGRlNqUXhLbEt3PT0iLCJkYXRhIjoiVkp2V09zSjczcS96UktTSlZTOFdBdz09In0=",
|
||||
"srvv-nginx-rm:rmonla": "eyJpdiI6ImFsQnk5UjhLaDFYWHJsWnciLCJ0YWciOiJJaEtCS215ekkwYVdFR0ZHNzFVN0VBPT0iLCJkYXRhIjoiUkcvSS9sMjhoQnFpRmZobFZBPT0ifQ=="
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
1775682230
|
||||
@@ -473,7 +473,11 @@ module BitacorasDB
|
||||
inicio_horario = Time.new(2000, 1, 1, 8, 0, 0)
|
||||
fin_horario = Time.new(2000, 1, 1, 13, 0, 0)
|
||||
|
||||
if modo_bitacora == 'P' && inicio_time >= fin_horario
|
||||
# Ensure we are comparing Times
|
||||
require 'time'
|
||||
inicio_t = inicio_time.is_a?(String) ? Time.parse(inicio_time) : inicio_time
|
||||
|
||||
if modo_bitacora == 'P' && inicio_t >= fin_horario
|
||||
modo = 'R' # Fuera de horario presencial
|
||||
else
|
||||
modo = modo_bitacora
|
||||
@@ -670,9 +674,15 @@ module BitacorasDB
|
||||
where_clause_events = if conditions.empty?
|
||||
''
|
||||
else
|
||||
# Reemplazar referencias a e. por ev. y eliminar condiciones que no aplican a events
|
||||
conditions_events = conditions.reject { |c| c.include?('bitacora_id') || c.include?('tema_id') || c.include?('ambito_id') }
|
||||
"WHERE #{conditions_events.join(' AND ').gsub('e.', 'ev.')}"
|
||||
# Adaptar condiciones para events: traducir referencias y eliminar las que no aplican
|
||||
conditions_events = conditions.map do |c|
|
||||
if c.include?('e.ambito_id')
|
||||
c.gsub('e.ambito_id', 'n.ambito_id')
|
||||
else
|
||||
c.gsub('e.', 'ev.')
|
||||
end
|
||||
end.reject { |c| c.include?('bitacora_id') || c.include?('tema_id') }
|
||||
conditions_events.empty? ? '' : "WHERE #{conditions_events.join(' AND ')}"
|
||||
end
|
||||
|
||||
# Unificar eventos de tabla events y entradas para mostrar todo junto
|
||||
@@ -1045,7 +1055,7 @@ module BitacorasDB
|
||||
end
|
||||
|
||||
# Actualizar un evento existente
|
||||
def actualizar_evento(id, descripcion: nil, estado: nil, fin: nil)
|
||||
def actualizar_evento(id, descripcion: nil, estado: nil, fin: nil, metadata: nil)
|
||||
set_clauses = []
|
||||
values = []
|
||||
i = 1
|
||||
@@ -1068,6 +1078,12 @@ module BitacorasDB
|
||||
i += 1
|
||||
end
|
||||
|
||||
if metadata
|
||||
set_clauses << "metadata = $#{i}"
|
||||
values << metadata.to_json
|
||||
i += 1
|
||||
end
|
||||
|
||||
return nil if set_clauses.empty?
|
||||
|
||||
set_clauses << "updated_at = NOW()"
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"id":2,"cmd":"$ErrorActionPreference='Stop'; Write-Host '=== Instalando QEMU-GA ==='; msiexec /i D:\\guest-agent\\qemu-ga-x86_64.msi /quiet /norestart; Start-Sleep 10; Start-Service QEMU-GA; Write-Host 'QEMU-GA: ' (Get-Service QEMU-GA).Status; Write-Host '=== Instalando Tailscale ==='; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; iwr https://pkgs.tailscale.com/stable/tailscale-setup-latest.exe -OutFile C:\\tailscale-setup.exe -UseBasicParsing; Start-Process C:\\tailscale-setup.exe /quiet -Wait; Start-Sleep 5; Write-Host '=== Conectando Tailscale ==='; $out = & 'C:\\Program Files\\Tailscale\\tailscale.exe' up 2>&1; Write-Host $out; Write-Host '=== IP Tailscale ==='; & 'C:\\Program Files\\Tailscale\\tailscale.exe' ip"}
|
||||
{"id":200,"cmd":"Rename-Computer -NewName dasu-sql3"}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
require 'json'
|
||||
|
||||
module WZombi
|
||||
module Routes
|
||||
class Exec
|
||||
def initialize(config)
|
||||
@config = config
|
||||
end
|
||||
|
||||
def call(_req, res)
|
||||
res['Content-Type'] = 'text/plain; charset=utf-8'
|
||||
cmd = JSON.parse(File.read(@config.cmd_path))['cmd']
|
||||
res.body = "#{cmd}\n"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,17 @@
|
||||
require 'json'
|
||||
|
||||
module WZombi
|
||||
module Routes
|
||||
class Ps1
|
||||
def initialize(config)
|
||||
@config = config
|
||||
end
|
||||
|
||||
def call(_req, res)
|
||||
res['Content-Type'] = 'text/plain; charset=utf-8'
|
||||
cmd = JSON.parse(File.read(@config.cmd_path))['cmd']
|
||||
res.body = "#{cmd}\n"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -8,7 +8,7 @@
|
||||
**Versión:** 1.2
|
||||
**Estado:** ✅ COMPLETADO (F4.1 alertas pendiente futura iteración)
|
||||
**Dependencia:** [A03.P001 — Migración a Tools ADN](A03.P001_Migracion_ADN.md) ✅
|
||||
**Última verificación:** 2026-04-06 13:17 (drones operativos)
|
||||
**Última verificación:** 2026-04-09 08:40 (dron activos: XEN01 en procesamiento)
|
||||
|
||||
## 📋 Resumen Ejecutivo
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ El ámbito **dtic-BKPs** engloba todas las operaciones de respaldo (backup), pro
|
||||
| `dron estado` | Estado detallado de cada dron |
|
||||
| `dron limpiar` | Limpiar tareas completadas/fallidas |
|
||||
|
||||
**Estado actual (2026-04-06 13:17):** Flota limpia — 2 drones completados y removidos.
|
||||
**Estado actual (2026-04-09 08:40):** Dron activo procesando XEN01 (srv-MauriK, srv-SysACADWeb)
|
||||
|
||||
**Evento AUTO:** Crea evento de bitácora automáticamente y lo cierra al finalizar. Ideal para cron jobs y tareas desatendidas.
|
||||
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
# Nodo: dasu-sql4
|
||||
|
||||
## Identidad
|
||||
- **Hostname**: `dasu-sql4`
|
||||
- **Rol**: SQL Server 2019 (DASUTEN) — Modo Workgroup
|
||||
- **OS**: Windows Server 2022 Core (Español)
|
||||
- **Estado**: 🚧 Configurando
|
||||
- **Última Actualización**: 2026-04-09
|
||||
- **Padre**: srv-dasu
|
||||
|
||||
## Virtualización
|
||||
- **Hipervisor**: srv-dasu
|
||||
- **VMID**: 106
|
||||
- **Tipo**: QEMU/KVM
|
||||
- **BIOS**: SeaBIOS
|
||||
- **Machine**: pc-i440fx-10.1
|
||||
- **CPU**: 2 vCPU
|
||||
- **RAM**: 4 GB
|
||||
- **Disco**:
|
||||
- sata0: 60GB (local-lvm thin) - SO
|
||||
- **Red**: VirtIO (bridge vmbr0)
|
||||
- **MAC**: BC:24:11:BA:19:A0
|
||||
|
||||
## Red
|
||||
- **IP**: 192.168.1.26 (DHCP ISP)
|
||||
- **Gateway**: 192.168.1.1
|
||||
- **DNS**: ISP (automático)
|
||||
|
||||
## ISO
|
||||
- Windows Server 2022 Spanish Evaluation
|
||||
- VirtIO drivers
|
||||
|
||||
## Historial
|
||||
- 2026-04-09 10:30: VM 106 creada (reemplaza dasu-sql3 fallen)
|
||||
- 2026-04-09 10:40: Windows Server 2022 Español instalado
|
||||
- 2026-04-09 10:50: hostname configurado: dasu-sql4
|
||||
|
||||
## Pendiente
|
||||
- Instalar drivers VirtIO
|
||||
- OpenSSH Server (puerto 7022)
|
||||
- Tailscale VPN
|
||||
- SQL Server 2019
|
||||
Reference in New Issue
Block a user