Как случайно да напиша Web-GUI за Haproxy

Съвременният свят на системните администратори ни е разглезил с красиви уеб интерфейси, така че дори не ми се иска да инсталирам софтуер, където този „GUI“ липсва (усещам, че сега ще ми хвърлят камъни правоверните строчкери), а нали не е необходимо постоянно да се влиза в конзолата, нали? Всичко щеше да е наред, ако софтуерът беше инсталиран, конфигуриран и забравен, но какво да правя, ако трябва постоянно да влизам, да правя корекции и, разбира се, да нямам лог на всички действия? Не мога всеки път да пиша cp cfg cfg_back, с времето ще се объркам и ще се откажа от това.

Как случайно да напиша Web-GUI за Haproxy

Много години назад се запознах с един чудесен балансьор, наречен Haproxy. Всичко беше чудесно и красиво. Започнах да имам много от тях и се замислих за търсене на графичен интерфейс за него, но, за моя изненада, такъв просто нямаше. Много популярен софтуер, освен това доста стар, но какво да правя, продължих да правя корекции на ръка в любимия си vi и да имам куп отворени табове със статистика на всички активни. сървъри. Но дойде време и ми се наложи да удовлетворя „прищявките“ на хората, които пишеха софтуер за работа през http, и тук започна всичко интересно…

Ръцете ми се раздвижиха, очите ми загоряха и аз се заех. Точнее, започнах да мисля с какво да пиша, да си спомням отдавна забравения PHP, но не ми се искаше, а и ми се струваше, че не е съвсем подходящ за тази работа. В крайна сметка избрах Python, помислих, че в бъдеще определено ще ми е полезен, и започна попиването на информация.

В началото задачите не бяха толкова сложни: възможност за редактиране на конфигурации от уеб интерфейс от една точка за достъп, запазване на предишни версии на конфигурации. Тази не особено голяма функционалност успях да реализирам доста бързо, но тогава в мен се възбуди или администраторската мързеливост, или пресловутият перфекционизъм и ми се стори, че това е твърде малко. И тук започнаха да се появяват нови функции, като: сравнение на две конфигурации, логиране на всички действия, свързани с конфигурациите, Runtime API и добавяне на секции през уеб.

Как случайно да напиша Web-GUI за Haproxy

И като един порядъчен UNIX администратор, който живее с помощта на свободен софтуер, реших да споделя с света, може би на някого ще му е от полза? Но за това трябваше всичко да бъде направено така, че да не се налага да се влиза в кода, а максимум в конфиг файловете (В момента повечето настройки са преместени в база данни. Според мен така е по-удобно за редактиране и при актуализация няма да има грешки поради липса на някой параметър в конфигурацията).

След като изминал месец, публикувах проекта си в Github, без да имам особени очаквания. Напразно, софтуерът се оказа доста търсен и тук започна най-интригуващото... Активното усъвършенстване продължава вече почти година. Понякога имам желание да се откажа, защото моите нужди отдавна са задоволени. Но защо ми е възможността да изградя "кластер" с keepalived и HAProxy през уеб интерфейс, когато ми отнема не повече от две минути? А оказва се, че на хората им трябва, и на мен е интересно, и имам с какво да се заема. Вярно, че имам нужните функции, например мониторинг на бекенд сървърите, дали са налични за Haproxy. Разбира се, имаме корпоративен мониторинг, но там работят хора, които могат да реагират доста бавно, плюс, че моят отдел се занимава с разработка и софтуерът идва и изчезва, което е дълъг процес за пробиване през бюрокрацията.

Как случайно да напиша Web-GUI за Haproxy

В общи линии реших да споделя, защото се оказва, че това е единственият безплатен GUI. Ами, ако на някой му е полезно? Връзка към GitHub.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster