Jak przypadkowo napisać web-GUI dla Haproxy

Współczesny świat administratorów systemów tak nas rozleniwił pięknymi stronami internetowymi, że nawet nie chcemy instalować oprogramowania, które nie ma tego „faceta” (czuję, że z zagorzałych szwaczy zaraz posypią się kamienie) , cóż, to nie jest tak, że ciągle wspinasz się po linie, prawda? Wszystko byłoby dobrze, gdyby oprogramowanie zostało zainstalowane, skonfigurowane i zapomniane, ale co zrobić, jeśli musisz ciągle się tam wspinać, edytować i oczywiście nie ma dziennika wszystkich działań, nie pisz za każdym razem cp cfg cfg_back czas się pogubisz i zapomnisz o tej sprawie.

Jak przypadkowo napisać web-GUI dla Haproxy

Wiele lat temu poznałem tak wspaniałego balansera jak Haproxy. Wszystko jest cudowne i piękne. Miałem ich wiele i myślałem o szukaniu dla nich GUI, ale ku mojemu zaskoczeniu nie było żadnego. Bardzo popularne oprogramowanie i też dość stare, ale cóż, pomyślałem i od czasu do czasu kontynuowałem edycję piór w moim ulubionym vi i mam kilka otwartych zakładek ze statystykami wszystkich aktywnych serwerów. Ale przyszedł czas i musiałem zaspokoić „potrzeby” ludzi, którzy pisali oprogramowanie do pracy przez http i wtedy zrobiło się ciekawie…

Swędziały mnie ręce, oczy się zaświeciły i zaczęłam. A dokładniej zacząłem się zastanawiać w czym pisać, żeby zapamiętać dawno zapomniane PHP, jakoś nie chciało mi się i wydawało mi się, że nie do końca się do tego nadaje. Ostatecznie wybór padł na Pythona, na pewno przyda się w przyszłości, pomyślałem i zacząłem chłonąć informacje.

Na początku zadania nie były aż tak trudne: możliwość edycji konfiguracji z poziomu interfejsu WWW z jednego punktu wejścia, zapisanie poprzednich wersji konfiguracji. Ta niezbyt duża funkcjonalność została wdrożona dość szybko, ale potem albo lenistwo administratora, albo notoryczny perfekcjonizm wzięło nade mną górę i oczywiście to wydawało mi się niewystarczające. A potem zaczęły pojawiać się takie funkcje jak: porównywanie dwóch konfiguracji, rejestrowanie wszystkich akcji związanych z konfiguracjami, Runtime API i dodawanie sekcji przez WWW.

Jak przypadkowo napisać web-GUI dla Haproxy

A jako porządny administrator UNIX-a żyjący z wolnego oprogramowania, postanowiłem podzielić się nim ze światem, a może komuś innemu się przyda? Ale do tego trzeba było zrobić wszystko tak, żeby nie trzeba było wchodzić do kodu, a co najwyżej do tyłków konfiguracyjnych (Teraz większość ustawień została przeniesiona do bazy danych. U mnie tak się stało wygodniej będzie je edytować i nie będzie błędów podczas aktualizacji z powodu braku jakiegokolwiek parametru lub).

Miesiąc później bez większych oczekiwań opublikowałem swoje dzieło na Githubie. Jednak na próżno okazało się, że na oprogramowanie jest niewielkie zapotrzebowanie i wtedy zaczęła się zabawa... Aktywne „aktualizowanie” trwa już prawie rok. Czasami pojawia się chęć rzucenia wszystkiego, bo... moje potrzeby zostały zaspokojone przez długi czas. Cóż, po co mi możliwość wdrożenia „klastra” z Keepalive i HAProxy przez Internet, skoro zajmuje mi to tylko kilka minut? Ale okazuje się, że ludzie tego potrzebują, a mnie to interesuje i jest co robić. Choć oczywiście są funkcje, których potrzebuję np. monitorowanie serwerów backendowych i czy są one dostępne dla Haproxy. Mamy oczywiście monitoring korporacyjny, ale są tam ludzie, którzy potrafią reagować dość długo, + bo... Mój dział zajmuje się rozwojem, a oprogramowanie pojawia się i znika na tyle długo, aby przedostać się przez biurokrację.

Jak przypadkowo napisać web-GUI dla Haproxy

Generalnie postanowiłem się podzielić, bo okazuje się, że to jedyne darmowe GUI. A co jeśli ktoś uzna to za przydatne? Link do GitHuba.

Źródło: www.habr.com

Dodaj komentarz