Il moderno mondo degli amministratori di sistema ci ha viziato con bellissime interfacce web, tanto che non abbiamo voglia di installare software che non dispone di questo «GUI» (sento già le critiche da parte dei puristi delle righe di comando), beh, non è certo bello doverci entrare di continuo, vero? Non sarebbe un problema se si potesse installare il software, configurarlo e dimenticarsene, ma cosa fare se è necessario entrarci spesso, modificarlo e, naturalmente, non c'è un log di tutte le azioni? Non posso scrivere ogni volta cp cfg cfg_back, alla lunga ci si confonde e si smette di seguito.
Molti anni fa, ho scoperto un meraviglioso bilanciatore come Haproxy. Tutto andava splendidamente. Ne ho avuti molti e ho cominciato a cercare un GUI per esso, ma sorprendentemente non era disponibile. È un software molto popolare e piuttosto vecchio, ma va bene, ho pensato e ho continuato a modificare di tanto in tanto il mio amato vi, tenendo aperte molte schede con la statistica di tutte le attive server. Ma è giunto il momento in cui ho dovuto soddisfare le «voglie» delle persone che scrivevano software per lavorare tramite http, ed è qui che è iniziato l'interessante…
Le mani si sono scatenate, gli occhi si sono illuminati e sono partito. In realtà, ho cominciato a pensare a cosa scrivere, ricordando un PHP che avevo dimenticato da tempo, non ne avevo molta voglia, e sembrava che non fosse adatto a questo scopo. Alla fine, ho optato per Python, pensavo che mi sarebbe stato utile in futuro, e ho iniziato a raccogliere informazioni.
Inizialmente le sfide non erano poi così complesse: la possibilità di modificare i file di configurazione tramite un'interfaccia web da un unico punto di accesso, mantenendo versioni precedenti dei file di configurazione. Questo non molto grande funzionalità è stata realizzata piuttosto rapidamente, ma qui in me è scattata una sorta di pigrizia da amministratore, o il famoso perfezionismo e mi è sembrato, naturalmente, poco. E così sono comparse funzionalità come: il confronto di due file di configurazione, il logging di tutte le azioni legate ai file di configurazione, un'API Runtime e l'aggiunta di sezioni, tramite il web.
E come un rispettabile amministratore UNIX che vive grazie al software libero, ho deciso di condividere con il mondo, chissà, potrebbe servire a qualcuno? Ma per farlo ho dovuto fare in modo che non ci fosse bisogno di entrare nel codice, ma al massimo nel file di configurazione (Attualmente la maggior parte delle impostazioni è stata trasferita nel database. A mio parere, è diventato più comodo modificarle e durante gli aggiornamenti non ci saranno errori causati dalla mancanza di qualche parametro nel file di configurazione).
Dopo un mese ho caricato il mio progetto su Github senza aspettarmi niente di particolare. A torto, il software si è rivelato leggermente richiesto e qui è iniziato il bello... Il lavoro attivo è in corso da quasi un anno. A volte ho la voglia di mollare tutto, visto che le mie esigenze sono da tempo soddisfatte. Ma perché dovrei aver bisogno della possibilità di avviare un "cluster" con keepalived e HAProxy attraverso una GUI, se ci mette al massimo un paio di minuti? Ma a quanto pare alla gente serve, e a me interessa, e ho qualcosa su cui lavorare. Anche se 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 reagire con un certo ritardo, e dato che il mio dipartimento si occupa di sviluppo e il software appare e scompare, ci vuole tempo per passare attraverso la burocrazia.
In generale, ho deciso di condividere, visto che risulta essere l'unica GUI gratuita. E chissà che possa servire a qualcuno? .
Fonte: habr.com
