Cómo escribir accidentalmente un Web-GUI para Haproxy

El mundo moderno de los administradores de sistemas nos ha malcriado con hermosas interfaces web, al punto que ni siquiera queremos instalar software que no tenga esa 'GUI' (siento que ahora recibiré críticas de los puristas de la línea de comandos), pero, ¿acaso es lógico estar entrando de a cada rato por línea, verdad? No estaría mal si el software una vez instalado, configurado y olvidado, funcionara así, pero ¿qué hacer si se tiene que entrar constantemente, modificar, y claro, sin un log de todas las acciones, no se puede estar escribiendo cada vez cp cfg cfg_back, con el tiempo te confundes y terminas dejándolo de lado.

Cómo escribir accidentalmente un Web-GUI para Haproxy

Hace muchos años, conocí un balanceador maravilloso llamado Haproxy. Todo era perfecto y bonito. Tenía varios y pensé en buscar una GUI para él, pero sorprendentemente no había. Es un software muy popular, además, bastante antiguo, pero dejémoslo así y continué editando de vez en cuando a mano en mi querido vi y teniendo un montón de pestañas abiertas con estadísticas de todos los activos. servidores. Pero llegó el momento y tuve que satisfacer las 'necesidades' de las personas que escribían software para trabajar a través de http, y aquí fue cuando comenzó lo interesante...

Las manos picaban, los ojos brillaban y empecé. Más bien, comencé a pensar en qué escribir, recordando ese PHP que había olvidado hace mucho, aunque no me apetecía, y parecía que no era lo más adecuado para esto. Al final, opté por Python; pensé que en el futuro sería útil y empecé a absorber información.

Al principio, las tareas no eran tan complicadas: la posibilidad de editar configuraciones desde una interfaz web desde un solo punto de entrada, guardar versiones anteriores de las configuraciones. Esta funcionalidad, no muy extensa, se logró implementar bastante rápido, pero en mí surgió ya sea la pereza administrativa o el famoso perfeccionismo y me pareció, por supuesto, muy poco. Así comenzaron a aparecer características como: la comparación de dos configuraciones, el registro de todas las acciones relacionadas con las configuraciones, y un API en tiempo de ejecución, además de la adición de secciones a través de la web.

Cómo escribir accidentalmente un Web-GUI para Haproxy

Y como un administrador UNIX decente, que vive gracias al software libre, decidí compartirlo con el mundo, ¿quién sabe si a alguien le será útil? Pero para eso tenía que hacer todo de tal manera que no fuera necesario hurgar en el código, sino que máximo en la configuración (Ahora la mayoría de las configuraciones se han trasladado a la base de datos. A mi parecer, se volvió más conveniente editarlas y, al actualizar, no habrá errores por la falta de algún parámetro en la configuración).

Después de un mes, subí mi proyecto a Github sin esperar mucho. Pero fue un error, el software resultó ser algo demandado y aquí comenzó lo más interesante… La "mejora activa" ha estado en marcha casi un año. A veces tengo ganas de dejarlo todo, ya que mis necesidades han sido satisfechas hace tiempo. ¿Para qué necesito la posibilidad de desplegar un "clúster" con keepalived y HAProxy a través de una interfaz web, si me lleva solo un par de minutos? A las personas, al parecer, les hace falta, y a mí me resulta interesante, además de que hay mucho por hacer. Aunque también hay funciones que necesito, como el monitoreo de servidores backend, para verificar si están disponibles para HAProxy. Por supuesto, tenemos un monitoreo corporativo, pero hay personas que pueden tardar bastante en reaccionar, ya que mi departamento se encarga del desarrollo y el software aparece y desaparece, por lo que es bastante difícil atravesar la burocracia.

Cómo escribir accidentalmente un Web-GUI para Haproxy

En resumen, decidí compartirlo, ya que resulta ser la única GUI gratuita. ¿Y si a alguien le resulta útil? Enlace a GitHub.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster