[Из песочницы] Как случайно написать Web-GUI для Haproxy

Современный мир системных администраторов обленил нас красивыми web-face-ами, что даже не охота ставить софт, где нет этого самого «гуя» (чувствую сейчас полетят камни от правоверных строчкеров), ну не через строку же постоянно туда лазить, правда? Все бы ничего, если софт поставил, настроил и забыл, а что делать, если туда надо постоянно лазить, править, ну и конечно же нет лога всех действий, не писать же каждый раз cp cfg cfg_back, со временем запутаешься и забьешь на это дело.

lmyl3gjbzhzlqdig_cmrzg3yl3w.jpeg
Много лет назад познакомился я с таким чудесным балансером, как Haproxy. Все чудесно и красиво. Стало у меня их много и задумался я о поиске GUI к нему, но его на удивление не было. Очень популярный софт, к тому же достаточно старый, ну да ладно подумал я и продолжил изредка править ручками в своем любимом vi и иметь кучу открытых вкладок со статистикой всех активных серверов. Но настало время и мне пришлось удовлетворять «хотелки» людей, которые писали софт для работы через http, вот тут и началось интересное…

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

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

txrkhgoa8-zmpuvx1gswjkj2vou.jpeg

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

Спустя месяц я выложил свою поделку на Github особо не на что не рассчитывая. А зря, софт оказался слегка востребованным и тут началось самое интересное… Активная «допилка» идет уже почти год. Порой есть желание все это бросить, т.к. мои потребности перекрыты уже давно. Ну вот зачем мне возможность развернуть «кластер» с keepalived и HAProxy через веб морду, если у меня это занимает от силы пару минут? А людям оказывается надо, да и мне интересно, и есть чем заняться. Хотя конечно же есть и нужные мне функции, например, как мониторинг бэкенд серверов, доступны ли они для Haproxy. У нас конечно же есть корпоративный мониторинг, но там сидят люди, которые могут достаточно долго реагировать, + т.к. мой отдел занимается разработкой и софт то появляется, то исчезает достаточно долго пробиваться через бюрократию.

_bthplwgh1ggsiutfblcd6exbg4.jpeg

В общем решил поделится, ведь получается, что это единственный бесплатный GUI. А вдруг кому пригодится? Ссылка на GitHub.

© Habrahabr.ru