Come scrivere casualmente una Web-GUI per Haproxy

Il mondo moderno degli amministratori di sistema ci ha viziato con interfacce web così belle che nemmeno ci viene voglia di installare software privo di questo "GUI" (sento già le critiche dei puristi). Dopotutto, non è certo piacevole dover accedere sulla riga di comando continuamente, vero? Tutto sarebbe perfetto se potessimo installare il software, configurarlo e poi dimenticarcelo; ma cosa fare se dobbiamo accedere frequentemente, modificare, e, ovviamente, non c'è un registro di tutte le azioni? Non possiamo scrivere ogni volta cp cfg cfg_back, altrimenti con il passare del tempo ci perderemmo e smetteremmo di farlo.

Come scrivere casualmente una Web-GUI per Haproxy

Anni fa, ho incontrato un fantastico bilanciatore chiamato Haproxy. È tutto così meraviglioso e bello. Ora ne ho molti e ho iniziato a cercare un GUI per lui, ma sorprendentemente non ce n'era. È un software molto popolare e anche piuttosto vecchio, ma va bene, ho pensato, e ho continuato a modificare di tanto in tanto con il mio amato vi, avendo un sacco di schede aperte con le statistiche di tutti gli attivi. serverMa è arrivato il momento in cui ho dovuto soddisfare le "richieste" delle persone che scrivevano software per lavorare tramite http, ed è qui che è iniziato l'interessante...

Le mani hanno iniziato a prudere, gli occhi si sono illuminati e ho cominciato. Anzi, ho iniziato a pensare a cosa scrivere, ricordando il PHP dimenticato da tempo, che in effetti non sembrava adatto a questo scopo. Alla fine, ho scelto Python; ho pensato che sarebbe stato sicuramente utile in futuro, e così è cominciato l'assorbimento di informazioni.

All'inizio, i requisiti del progetto non erano così complessi: la possibilità di modificare i file di configurazione da un'interfaccia web da un unico punto di accesso, e la conservazione delle versioni precedenti delle configurazioni. Questo funzionalità, non particolarmente grande, è stata realizzata piuttosto rapidamente, ma qui è emersa in me una sorta di pigrizia da amministratore, o forse il noto perfezionismo, e mi è sembrato ovviamente poco. E così sono iniziate a comparire caratteristiche come: il confronto tra due configurazioni, il logging di tutte le azioni relative alle configurazioni, un'API Runtime e l'aggiunta di sezioni tramite web.

Come scrivere casualmente una Web-GUI per Haproxy

E come un rispettabile amministratore UNIX che vive grazie al software libero, ho deciso di condividere con il mondo, magari a qualcuno potrebbe servire. Ma per farlo, era necessario fare in modo che non fosse necessario entrare nel codice, ma al massimo nel file di configurazione (Ora la maggior parte delle impostazioni è migrata nel database. A mio avviso, è diventato più facile modificarle e durante gli aggiornamenti non ci saranno errori a causa dell'assenza di qualche parametro nel file di configurazione).

Dopo un mese, ho pubblicato il mio progetto su Github senza aspettarmi nulla di particolare. Invece, il software si è rivelato essere abbastanza richiesto e qui è iniziato il bello… L'attività di sviluppo è in corso da quasi un anno. A volte ho voglia di mollare tutto, dato che le mie esigenze sono già state soddisfatte da tempo. Ma a cosa mi serve la possibilità di implementare un "cluster" con keepalived e HAProxy tramite un'interfaccia web, se mi ci vogliono al massimo un paio di minuti? Eppure, sembra che ci sia bisogno di queste funzionalità, e a me interessa, oltre ad avere qualcosa da fare. Certamente ci sono anche funzioni che mi servono, come il monitoraggio dei server backend, per vedere se sono disponibili per Haproxy. Abbiamo ovviamente un monitoraggio aziendale, ma ci sono persone che possono impiegare tempo per rispondere, e poiché il mio dipartimento si occupa di sviluppo, il software appare e scompare, quindi spesso è difficile superare la burocrazia.

Come scrivere casualmente una Web-GUI per Haproxy

In conclusione, ho deciso di condividerlo, dato che sembra essere l'unico GUI gratuito. E magari a qualcuno potrebbe tornare utile! Link su GitHub.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster