Ako náhodou napísať Web-GUI pre Haproxy

Súčasný svet systémových administrátorov nás obvykle obťažuje krásnymi webovými rozhraním, že sa nám ani nechce inštalovať softvér, ktorý nemá „gui“ (cítim, že teraz sa na mňa vrhnú kritici), ale predsa, prečo by som mal neustále skákať do príkazového riadku? Všetko by bolo v poriadku, keby som softvér nainštaloval, nastavil a zabudol naň, ale čo robiť, keď je nutné sa doň stále vracať, upravovať ho a samozrejme, nie je k dispozícii log všetkých akcií? Nemôžem stále písať cp cfg cfg_back, časom sa v tom zamotám a jednoducho na to zabudnem.

Ako náhodou napísať Web-GUI pre Haproxy

Pred mnohými rokmi som sa stretol s takým úžasným vyvažovačom, ako je Haproxy. Všetko je skvelé a krásne. Mal som ich veľa a začal som hľadať GUI k nemu, ale prekvapivo žiadne neexistovalo. Veľmi populárny softvér, navyše dosť starý, nuž, nevadí, pomyslel som si a pokračoval som občasne upravovať ručne v mojom obľúbenom vi a mal som otvorených veľa záložiek so štatistikami všetkých aktívnych „connections“. serverov. Ale nastal čas a musel som uspokojiť „chcenia“ ľudí, ktorí písali softvér na prácu cez http, a tu sa začalo niečo zaujímavé...

Ruky sa mi roztriasli, oči sa mi rozžiarili a ja som sa pustil do práce. Presnejšie, začal som uvažovať o tom, na čom písať, spomínal som na dávno zabudnutý PHP, ale nejako sa mi to nechcelo, a navyše sa zdalo, že to na túto úlohu nie je úplne vhodné. Nakoniec som sa rozhodol pre Python, v budúcnosti sa určite zíde, pomyslel som si a začalo sa moje vstrebávanie informácií.

Na začiatku úlohy neboli až tak zložité: schopnosť editovať konfigurácie z webového rozhrania z jedného vstupného bodu, ukladanie predchádzajúcich verzií konfigurácií. Tento, nie veľmi rozsiahly funkčný rozšírenie sa podarilo realizovať celkom rýchlo, ale vnútri vo mne sa vzbúrila buď administrátorská lenivosť, alebo prekliaty perfekcionizmus a zdalo sa mi, že je to samozrejme málo. A keď sa začali objavovať funkcie ako: porovnanie dvoch konfigurácií, logovanie všetkých akcií súvisiacich s konfiguráciami, Runtime API a pridávanie sekcií cez web.

Ako náhodou napísať Web-GUI pre Haproxy

A ako slušný UNIX administrátor žijúci na základe voľného softvéru som sa rozhodol podeliť s svetom, či sa niekomu to hodí? Ale na to som musel všetko urobiť tak, aby som nemusel zaliezať do kódu, ale maximálne do konfiguračných aplikácií (teraz väčšina nastavení prešla do databázy. Podľa mňa sa ich stalo pohodlnejšie upravovať a pri aktualizácii nebudú chyby kvôli chýbajúcemu parametru v konfigurácii).

Po mesiaci som svoju prácu zverejnil na GitHube, bez toho, aby som očakával niečo zvláštne. A zbytočne, softvér sa ukázal byť trochu žiadaný a potom to naozaj začalo byť zaujímavé… Aktívne „doplňovanie“ trvá už takmer rok. Niekedy mám chuť to všetko vzdať, pretože moje potreby sú už dávno splnené. No prečo by som potreboval možnosť nasadiť „klaster“ s keepalived a HAProxy prostredníctvom webového rozhrania, ak mi to zaberie maximálne pár minút? A zjavne to ľuďom treba, a ma to aj zaujíma, a je s čím pracovať. Hoci samozrejme existujú aj funkcie, ktoré sú pre mňa užitočné, napríklad monitoring backend serverov, dostupných pre HAProxy. Samozrejme máme firemný monitoring, ale sú tam ľudia, ktorí môžu dosť dlho reagovať, a keďže môj tím sa zaoberá vývojom a softvér sa objavuje a zmizne, je dosť ťažké prechádzať cez byrokraciu.

Ako náhodou napísať Web-GUI pre Haproxy

Celkovo som sa rozhodol podeliť, pretože sa ukazuje, že je to jediný bezplatný GUI. A čo ak to niekomu príde vhod? Odkaz na GitHub.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster