Як выпадкова напісаць Web-GUI для Haproxy

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

Як выпадкова напісаць Web-GUI для Haproxy

Шмат гадоў таму пазнаёміўся я з такім цудоўным балансарам, як Haproxy. Усё цудоўна і прыгожа. Стала ў мяне іх шмат і задумаўся я аб пошуку GUI да яго, але яго на здзіўленне не было. Вельмі папулярны софт, да таго ж досыць стары, ну ды добра падумаў я і працягнуў зрэдку кіраваць ручкамі ў сваім каханым vi і мець кучу адчыненых укладак са статыстыкай усіх актыўных сервераў. Але надышоў час і мне прыйшлося задавальняць "хатэлкі" людзей, якія пісалі софт для працы праз http, вось тут і пачалося цікавае…

Ручкі засвярбелі, вочкі загарэліся і я прыступіў. Дакладней пачаў думаць на чым пісаць, успамінаць даўно-даўным забыты PHP, неяк не хацелася, ды і здавалася, што ён не зусім падыходзіць для гэтай справы. У выніку выбар упаў на Python, у будучыні сапраўды спатрэбіцца падумаў я і пачалося ўбіранне інфармацыі.

У пачатку задачы стаялі не такія ўжо і складаныя: магчымасць рэдагаваць канфігі з вэб інтэрфейсу з адной кропкі ўваходу, захаванні папярэдніх версій канфігаў. Дадзены, не асоба вялікі функцыянал атрымалася рэалізаваць досыць хутка, але тут ўва мне разгулялася ці то адмінская лянота, ці то праславуты перфекцыянізм і мне гэтага здалося вядома ж мала. І тут пачалі з'яўляцца такія фічы як: параўнанне двух канфігаў, лагіраванне ўсіх дзеянняў злучаных з канфігамі, Runtime API і даданні секцый, праз web.

Як выпадкова напісаць Web-GUI для Haproxy

І як прыстойны UNIX адміністратар які жыве за рахунак вольнага ПЗ я вырашыў падзеліцца з мірам, а ў сябар камусьці спатрэбіцца? Але для гэтага трэба было зрабіць усё так, каб не даводзілася лазіць у код, але максімум у канфіг прыклады(Цяпер большасць налад пераехала ў базу. Як па мне іх стала зручней рэдагаваць і пры абнаўленні не будзе памылак з-за адсутнасці ў канфігу якога- альбо параметра).

Праз месяц я выклаў свой выраб на Github асабліва не на што не разлічваючы. А дарма, софт апынуўся злёгку запатрабаваным і тут пачалося самае цікавае… Актыўная дапілка ідзе ўжо амаль год. Часам ёсць жаданне ўсё гэта кінуць, т.я. мае патрэбы перакрыты ўжо даўно. Ну вось навошта мне магчымасць разгарнуць класёр з keepalived і HAProxy праз вэб морду, калі ў мяне гэта займае ад сілы пару хвілін? А людзям аказваецца трэба, ды і мне цікава і ёсць чым заняцца. Хоць вядома ж ёсць і патрэбныя мне функцыі, напрыклад, як маніторынг бэкэнд сервераў, ці даступныя яны для Haproxy. У нас вядома ж ёсць карпаратыўны маніторынг, але там сядзяць людзі, якія могуць дастаткова доўга рэагаваць, + т.я. мой аддзел займаецца распрацоўкай і софт то з'яўляецца, то знікае дастаткова доўга прабівацца праз бюракратыю.

Як выпадкова напісаць Web-GUI для Haproxy

Увогуле вырашыў падзеліцца, бо атрымоўваецца, што гэта адзіны бясплатны GUI. А раптам каму спатрэбіцца? Спасылка на GitHub.

Крыніца: habr.com

Дадаць каментар