Semaphore UI en municipios: parches, inventario y registro

Un municipio chico puede ordenar parches y tareas repetidas con Semaphore UI y Ansible. Flujo, permisos, evidencia, costo y prueba de salida.

ULTIMA MILLA · Proyectos · 14 de jun de 2026 · 4 min de lectura

Semaphore UI en municipios: parches, inventario y registro

El parche de un servidor municipal queda a mitad de camino cuando el inventario vive en una planilla y el comando queda en la terminal de una sola persona antes de cerrar el día. Semaphore UI permite ejecutar Ansible con plantillas, permisos y registro visible para un equipo chico. Este caso muestra cómo ordenar parches, respaldos y tareas repetidas sin perder evidencia.

Dónde aparece la falla repetida

El síntoma llega los lunes: un sistema de turnos quedó sin actualizar, una impresora de rentas cambió de IP y un proveedor pregunta quién tocó el servidor. El IT manager de una municipalidad del Gran Mendoza tiene una carpeta con cables rotulados y un switch con etiquetas viejas; la falla aparece cuando nadie puede reconstruir qué tarea corrió en cada equipo. Semaphore UI se presenta en su documentación como una interfaz web y API para ejecutar automatización con Ansible, Terraform/OpenTofu, PowerShell, Shell/Bash y Python. También soporta SQLite, MySQL y PostgreSQL. La cifra que corrige la escala está en sus releases: la rama 2.18 tuvo publicaciones el 2 y el 3 de junio de 2026, con paquetes listos para instalar. La conexión con herramientas conocidas aparece en la encuesta Stack Overflow 2025: SQL registra 58,6 % de uso y Docker 71,1 %. Las herramientas que rodean a una automatización municipal ya están en la práctica común; falta dejar permisos y salida escritos.

Cómo funciona por dentro

El flujo tiene seis pasos. IT arma un inventario de servidores, routers, PCs críticas y servicios. Ansible usa ese inventario para saber contra qué nodos ejecutar una tarea. La guía de inventarios de Ansible explica que los hosts se organizan en grupos y que esos grupos permiten apuntar una ejecución. El playbook guarda la receta: actualizar paquetes, reiniciar un servicio, copiar un archivo de configuración o levantar un backup. La guía de playbooks de Ansible define esas tareas como instrucciones repetibles. El repositorio Git conserva cambios y autor. Semaphore UI toma ese repositorio, inventario, variables, credenciales y plantilla de tarea. Su guía de Ansible dentro de Semaphore muestra que una plantilla define repositorio, playbook, inventario, variables, vaults y argumentos. El operador elige la plantilla y ejecuta con permiso nominal. PostgreSQL guarda usuarios, proyectos, tareas y resultados si se elige ese motor. Los archivos de configuración y secretos quedan fuera del chat. Gerencia puede leer historial; IT ejecuta; un proveedor solo entra a plantillas acotadas. Si una tarea falla, el registro muestra hora, usuario, host y salida del comando. El backup copia base, repositorio, configuración y archivos de credenciales cifradas. La prueba restaura Semaphore en otra máquina, ejecuta una plantilla de lectura contra un host de prueba y verifica que el historial anterior siga disponible.

Qué se instala o configura primero

La pila inicial tiene Semaphore UI, PostgreSQL, Git, Ansible, llaves SSH por rol y un runner en red interna. El primer entregable verificable es una plantilla que consulta versión de sistema en cinco equipos y deja resultado con usuario, fecha y host. Con Banco Nación al 14 de junio de 2026, USD 1 vendedor figura a ARS 1.450. Un servidor chico de USD 20 a 45 mensuales queda entre ARS 29.000 y ARS 65.250. En infraestructura propia, el costo visible pasa por horas: inventario, llaves, plantillas, roles, backup y prueba. Un piloto municipal puede pedir 25 a 40 horas. UMSA puede arrancar con tareas de bajo riesgo: consulta de estado, verificación de disco, backup de configuración y actualización de paquetes en servidores secundarios. El entregable útil es una ejecución que soporte auditoría: quién apretó ejecutar, qué host tocó, qué cambió y qué salida dejó.

Dónde se rompe y cómo probarlo

El primer riesgo es un inventario viejo. La señal aparece cuando una IP apunta a otro equipo. La prueba cambia una IP en staging y exige que la tarea falle sin tocar el host equivocado. El segundo riesgo es una llave SSH compartida. La señal es una ejecución sin usuario real. La prueba revoca la llave de un operador y verifica que sus plantillas dejen de correr. El tercer riesgo es un playbook sin revisión. La señal aparece cuando una tarea de lectura reinicia un servicio. La prueba exige que cada cambio pase por Git y que Semaphore ejecute solo desde una rama aprobada. El cuarto riesgo es un secreto escrito en variables planas. La señal es una contraseña visible en historial o salida. La prueba carga una variable sensible, ejecuta una tarea y confirma que el log la oculte. El quinto riesgo es automatizar sin plan de salida. La señal aparece cuando nadie puede correr el playbook fuera de la interfaz. La prueba descarga repositorio, inventario y credenciales de prueba, y ejecuta Ansible desde línea de comandos contra un host aislado. Un municipio chico no necesita héroes de terminal para cada parche. Necesita tareas repetibles, permisos nominales y un registro que sobreviva al cambio de guardia.

Para seguir leyendo