feat(matilda): ghost + linker + CLI — el ciclo completo de aplicación
matilda-ghost: el agente que ejecuta los ApplySteps en la máquina destino — escribe archivos, corre comandos, reporta paso a paso; semántica set -e (se detiene en el primer error). dry_run previsualiza sin tocar nada. 5 tests. matilda-linker: aplica los pasos en un host remoto por SSH sobre brahman-ssh-multiplex; produce el mismo ApplyReport que el ghost local. apps/matilda: deja de ser una demo hardcoded — ahora es una CLI real: matilda example | plan | script | apply (local · --dry-run · --host) Carga el inventario de un JSON, reconcilia y aplica. matilda: 6 crates + CLI, ~42 tests. La cadena va de la declaración a la aplicación local/remota. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,7 @@ rust-version.workspace = true
|
||||
license.workspace = true
|
||||
authors.workspace = true
|
||||
publish.workspace = true
|
||||
description = "matilda — demostración de administración de servidores: inventario declarativo, renderizado de docker-compose y nginx, y plan de reconciliación."
|
||||
description = "matilda — CLI de administración de servidores: carga un inventario, muestra el plan, emite el script y lo aplica (local, remoto por SSH, o en seco)."
|
||||
|
||||
[[bin]]
|
||||
name = "matilda"
|
||||
@@ -17,3 +17,8 @@ matilda-core = { path = "../../modules/matilda/matilda-core" }
|
||||
matilda-config = { path = "../../modules/matilda/matilda-config" }
|
||||
matilda-plan = { path = "../../modules/matilda/matilda-plan" }
|
||||
matilda-apply = { path = "../../modules/matilda/matilda-apply" }
|
||||
matilda-ghost = { path = "../../modules/matilda/matilda-ghost" }
|
||||
matilda-linker = { path = "../../modules/matilda/matilda-linker" }
|
||||
clap = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
|
||||
Reference in New Issue
Block a user