Jak omylem napsat webové GUI pro Haproxy

Moderní svět systémových administrátorů nás zlenivil s krásnými webovými tvářemi, že to není ani touha instalovat software tam, kde není zrovna tenhle „chlap“ (mám pocit, že teď budou z ortodoxních pisálků létat kameny), no, není vždycky tam leze přes čáru, že? Všechno by bylo v pořádku, kdyby byl software nainstalován, nakonfigurován a zapomenut, ale co dělat, když tam potřebujete neustále lézt, upravovat a samozřejmě neexistuje žádný protokol všech akcí, nepište cp cfg cfg_back pokaždé, v průběhu času budete zmateni a zapomenete na tuto záležitost.

Jak omylem napsat webové GUI pro Haproxy

Před mnoha lety jsem se setkal s tak úžasným balancérem jako je Haproxy. Všechno je úžasné a krásné. Měl jsem jich hodně a přemýšlel jsem o tom, že na to najdu GUI, ale kupodivu tam nebylo. Velmi oblíbený software, kromě toho docela starý, ale ouha, pomyslel jsem si a pokračoval jsem v občasných úpravách klik v mém oblíbeném vi a měl jsem spoustu otevřených karet se statistikami všech aktivních serverů. Ale přišel čas a musel jsem uspokojit "Wishlist" lidí, kteří psali software pro práci přes http, a tady začalo to zajímavé ...

Svrběly mě ruce, rozzářily se mi oči a začal jsem. Přesněji řečeno, začal jsem přemýšlet, na co napsat, vzpomenout si na dávno zapomenuté PHP, nějak se mi nechtělo a zdálo se, že se pro tento byznys úplně nehodí. Tím pádem padla volba na Python, řekl jsem si, že se to v budoucnu určitě bude hodit a začalo vstřebávání informací.

Na začátku nebyly úkoly tak těžké: možnost upravovat konfigurace z webového rozhraní z jednoho vstupního bodu, ukládat předchozí verze konfigurací. Tuto nepříliš rozsáhlou funkcionalitu šlo implementovat celkem rychle, ale pak ve mně naskočila buď adminská lenost, nebo pověstný perfekcionismus, a to se mi samozřejmě zdálo málo. A pak se začaly objevovat funkce jako: porovnání dvou konfigurací, protokolování všech akcí souvisejících s konfiguracemi, Runtime API a přidávání sekcí přes web.

Jak omylem napsat webové GUI pro Haproxy

A jako slušný správce UNIXu, který žije ze svobodného softwaru, jsem se rozhodl, že se o to podělím se světem a ještě někdo přijde vhod? K tomu ale bylo nutné udělat vše proto, abyste nemuseli lézt do kódu, ale maximálně do konfiguračních zadků (Nyní se většina nastavení přesunula do databáze. Co se mě týče, stalo se to pohodlnějším upravovat je a během aktualizace nedojde k žádným chybám z důvodu absence nějaké konfigurace v konfiguraci nebo parametru).

O měsíc později jsem své řemeslo zveřejnil na Github, aniž bych s čímkoli počítal. A marně, software se ukázal být mírně žádaný a pak začalo to nejzajímavější ... Aktivní „dokončování“ probíhá již téměř rok. Někdy je touha s tím vším skončit, protože. Mé potřeby byly pokryty na dlouhou dobu. Proč potřebuji možnost nasadit "cluster" s keepalived a HAProxy přes web, když mi to zabere maximálně pár minut? A ukázalo se, že to lidé potřebují, a mě to zajímá a je co dělat. I když samozřejmě existují funkce, které potřebuji, například jak sledovat backend servery, zda jsou dostupné pro Haproxy. Firemní monitoring samozřejmě máme, ale jsou lidé, kteří dokážou reagovat poměrně dlouho, + protože moje oddělení se vyvíjí a software přichází a odchází dostatečně dlouho na to, aby prošel byrokracií.

Jak omylem napsat webové GUI pro Haproxy

Obecně jsem se rozhodl sdílet, protože se ukázalo, že je to jediné bezplatné GUI. Co když to někomu přijde vhod? Odkaz na GitHub.

Zdroj: www.habr.com

Přidat komentář