Hoe je per ongeluk een Web-GUI voor Haproxy schrijft

De moderne wereld van systeembeheerders heeft ons verwend met mooie webinterfaces, waardoor we geen software willen installeren zonder deze "GUI" (ik voel nu al dat de traditionele coders hun stenen gaan gooien), maar wie wil er nou telkens de commandoregel ingaan, toch? Het zou allemaal goed zijn als je de software installeert, configureert en vervolgens vergeet, maar wat te doen als je voortdurend moet inloggen om aanpassingen te maken? En natuurlijk is er geen log van alle acties; je kunt niet elke keer 'cp cfg cfg_back' schrijven, anders raak je in de war en laat je het onderwerp volledig achter je.

Hoe je per ongeluk een Web-GUI voor Haproxy schrijft

Jaren geleden maakte ik kennis met een geweldige load balancer, Haproxy. Alles was geweldig en mooi. Ik begon er meer van te gebruiken en dacht na over het vinden van een GUI ervoor, maar tot mijn verbazing was die er niet. Het is zeer populaire software en bovendien behoorlijk oud, maar goed, ik dacht dat ik gewoon af en toe handmatig in mijn geliefde vi ging aanpassen en ondertussen een heleboel tabbladen openhad met de statistieken van alle actieve systemen. servers. Maar het werd tijd om de "wensen" van de mensen te vervullen die software schrijven voor het werken via http, en daar begon het interessante deel…

Mijn handen jeukten, mijn ogen gingen glinsteren en ik ging aan de slag. Eigenlijk begon ik na te denken over wat ik zou gebruiken, ik herinnerde me het lang vergeten PHP, maar dat leek me niet echt geschikt voor deze klus. Uiteindelijk viel de keuze op Python, dat zou in de toekomst zeker van pas komen, dacht ik, en zo begon ik informatie te verzamelen.

Aanvankelijk waren de taken niet zo moeilijk: de mogelijkheid om configuraties te bewerken via een webinterface vanuit één toegangspunt en het opslaan van eerdere versies van configuraties. Deze, niet al te grote functionaliteit, kon ik vrij snel implementeren, maar toen kwam er bij mij een mix van administratieve luiheid en het beruchte perfectionisme naar boven en dit leek me natuurlijk niet genoeg. En toen begonnen er functies te verschijnen zoals: het vergelijken van twee configuraties, het loggen van alle acties met betrekking tot configuraties, een Runtime API en het toevoegen van secties via het web.

Hoe je per ongeluk een Web-GUI voor Haproxy schrijft

En als een fatsoenlijke UNIX-beheerder die leeft van vrije software besloot ik mijn werk met de wereld te delen, misschien heeft iemand er baat bij? Maar daarvoor moest alles zo worden gedaan dat je niet in de code hoefde te duiken, maar maximaal in de configuratie (Tegenwoordig zijn de meeste instellingen naar de database verhuisd. Persoonlijk vind ik het gemakkelijker om ze te bewerken, en bij updates zullen er geen fouten optreden door het ontbreken van een bepaald parameter in de configuratie).

Na een maand heb ik mijn project op Github geplaatst zonder veel verwachtingen. Maar dat was tevergeefs, de software bleek enigszins gevraagd te zijn en toen begon het meest interessante… De actieve 'ontwikkeling' loopt nu al bijna een jaar. Soms heb ik de neiging om alles op te geven, omdat aan mijn behoeften al lang is voldaan. Maar waarom zou ik de mogelijkheid willen hebben om een 'cluster' met keepalived en HAProxy via een webinterface op te zetten, als dat me hooguit twee minuten kost? Blijkbaar is er vraag naar, en ik vind het ook interessant en heb er wat te doen. Natuurlijk zijn er ook functies die ik nodig heb, zoals het monitoren van backend-servers, of ze beschikbaar zijn voor HAProxy. We hebben natuurlijk al bedrijfsmonitoring, maar daar zitten mensen die er vrij lang over doen om te reageren, plus omdat mijn afdeling zich bezighoudt met ontwikkeling en de software soms verschijnt en dan weer verdwijnt, is het behoorlijk moeilijk om door de bureaucratie heen te komen.

Hoe je per ongeluk een Web-GUI voor Haproxy schrijft

Kortom, ik besloot het te delen, want het blijkt het enige gratis GUI te zijn. Wie weet, misschien heeft iemand er iets aan? Link naar GitHub.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster