Ako omylom napísať webové rozhranie pre Haproxy

Moderný svet systémových administrátorov nás natoľko zlenivil s krásnymi webovými tvárami, že sa nám ani nechce inštalovať softvér, ktorý nemá práve tohto „týpka“ (mám pocit, že od oddaných zošívačiek už lietajú kamene) , no, nie je to tak, že neustále preliezate cez čiaru, však? Všetko by bolo v poriadku, keby bol softvér nainštalovaný, nakonfigurovaný a zabudnutý, ale čo robiť, ak tam potrebujete neustále liezť, upravovať a samozrejme tam nie je protokol všetkých akcií, nepíšte cp cfg cfg_back zakaždým, cez čas budete zmätení a zabudnete na túto záležitosť.

Ako omylom napísať webové rozhranie pre Haproxy

Pred mnohými rokmi som stretol takého úžasného balancéra ako Haproxy. Všetko je úžasné a krásne. Mal som ich veľa a rozmýšľal som nad tým, že by som na to hľadal GUI, ale prekvapivo žiadne nebolo. Veľmi populárny softvér a tiež dosť starý, ale dobre, pomyslel som si a pokračoval som v občasnej úprave pera v mojom obľúbenom vi a mal som veľa otvorených kariet so štatistikami všetkých aktívnych serverov. Ale prišiel čas a musel som uspokojiť „želania“ ľudí, ktorí napísali softvér, aby fungoval cez http, a to je miesto, kde sa veci začali zaujímať…

Svrbeli ma ruky, rozžiarili sa mi oči a začala som. Presnejšie povedané, začal som premýšľať o tom, čo napísať, spomenúť si na dávno zabudnuté PHP, akosi sa mi nechcelo a zdalo sa, že to nie je úplne vhodné na túto vec. Nakoniec padla voľba na Python, ten sa v budúcnosti určite bude hodiť, pomyslel som si a začal nasávať informácie.

Na začiatku neboli úlohy také ťažké: možnosť upravovať konfigurácie z webového rozhrania z jedného vstupného bodu, čím sa ukladajú predchádzajúce verzie konfigurácií. Táto nie príliš veľká funkcionalita bola implementovaná pomerne rýchlo, no potom sa vo mne zmocnila buď adminova lenivosť alebo povestný perfekcionizmus a to sa mi samozrejme zdalo málo. A potom sa začali objavovať funkcie ako: porovnanie dvoch konfigurácií, zaznamenávanie všetkých akcií súvisiacich s konfiguráciami, Runtime API a pridávanie sekcií cez web.

Ako omylom napísať webové rozhranie pre Haproxy

A ako slušný správca UNIX, ktorý žije zo slobodného softvéru, som sa rozhodol podeliť sa oň so svetom a možno sa bude hodiť aj niekomu inému? Ale na to bolo potrebné urobiť všetko tak, aby ste nemuseli ísť do kódu, ale maximálne do konfiguračných zadkov (Teraz sa väčšina nastavení presunula do databázy. Pokiaľ ide o mňa, bude pohodlnejšie ich upravovať a pri aktualizácii nedôjde k žiadnym chybám z dôvodu chýbajúceho parametra).

O mesiac neskôr som bez veľkých očakávaní zverejnil svoje remeslo na Github. Ale márne, softvér sa ukázal byť mierne žiadaný a potom sa začala zábava... Aktívna „aktualizácia“ prebieha už takmer rok. Niekedy je tu túžba to všetko vzdať, pretože... moje potreby sú už dávno pokryté. Prečo potrebujem možnosť nasadiť „klaster“ s keepalived a HAProxy cez web, ak mi to zaberie len pár minút? Ale ukázalo sa, že ľudia to potrebujú, a mňa to zaujíma a je tu niečo, čo treba urobiť. Aj keď, samozrejme, existujú funkcie, ktoré potrebujem, napríklad monitorovanie backend serverov a či sú dostupné pre Haproxy. Firemný monitoring, samozrejme, máme, ale sú tam ľudia, ktorí dokážu reagovať pomerne dlho, + lebo... Moje oddelenie sa zaoberá vývojom a softvér sa objavuje a zaniká dostatočne dlho na to, aby si prerazil cestu byrokraciou.

Ako omylom napísať webové rozhranie pre Haproxy

Vo všeobecnosti som sa rozhodol zdieľať, pretože sa ukázalo, že toto je jediné bezplatné GUI. Čo ak to niekto považuje za užitočné? Odkaz na GitHub.

Zdroj: hab.com

Pridať komentár