Wie man zufĂ€llig ein Web-GUI fĂŒr Haproxy erstellt

Die moderne Welt der Systemadministratoren hat uns durch schöne Web-OberflĂ€chen verwöhnt, sodass man kaum Lust hat, Software zu installieren, wo es nicht dieses "GUI" gibt (ich spĂŒre schon, dass jetzt Steine von den rechtglĂ€ubigen Befehlszeilen-Nutzern fliegen werden). Man will schließlich nicht stĂ€ndig ĂŒber die Kommandozeile dorthin navigieren, oder? Alles wĂ€re in Ordnung, wenn man die Software einmal installiert, konfiguriert und vergisst, aber was tun, wenn man stĂ€ndig eingreifen, Änderungen vornehmen muss und natĂŒrlich kein Protokoll aller Aktionen existiert? Man kann doch nicht jedes Mal "cp cfg cfg_back" schreiben, irgendwann verliert man den Überblick und lĂ€sst das Ganze schleifen.

Wie man zufĂ€llig ein Web-GUI fĂŒr Haproxy erstellt

Vor vielen Jahren bin ich mit einem so wunderbaren Load Balancer wie Haproxy in Kontakt gekommen. Alles war fantastisch und schön. Ich hatte schließlich viele davon und begann ĂŒber einen GUI nachzudenken, aber zu meiner Überraschung gab es keinen. Sehr beliebte Software, dazu schon recht alt, na gut, dachte ich, und fuhr fort, gelegentlich meine Änderungen in meinem geliebten vi vorzunehmen und eine Menge geöffneter Tabs mit Statistiken aller aktiven Verbindungen zu haben. Server. Doch die Zeit kam, und ich musste die „WĂŒnsche“ der Leute erfĂŒllen, die Software fĂŒr den HTTP-Zugriff entwickelt hatten. Hier begann das Interessante...

Ich konnte es kaum erwarten, meine HĂ€nde zu benutzen, und ich machte mich an die Arbeit. Genauer gesagt, begann ich darĂŒber nachzudenken, womit ich schreiben sollte. Ich erinnerte mich an das lĂ€ngst verstaubte PHP, aber ich hatte nicht so viel Lust darauf und dachte, es sei nicht ganz passend fĂŒr dieses Vorhaben. Letztendlich fiel die Wahl auf Python, dachte ich, das wird sich in Zukunft sicher als nĂŒtzlich erweisen, und der Prozess des Informationsaufnehmens begann.

Am Anfang waren die Aufgaben nicht allzu kompliziert: die Möglichkeit, Konfigurationen ĂŒber eine Web-OberflĂ€che von einem einzigen Zugangspunkt aus zu bearbeiten, und das Speichern vorheriger Versionen der Konfigurationen. Diese nicht sehr umfangreiche FunktionalitĂ€t konnte ich ziemlich schnell umsetzen, aber dann ĂŒberkam mich entweder die Unlust eines Administrators oder der berĂŒchtigte Perfektionismus, sodass mir das offensichtlich nicht genug war. Und dann begannen Funktionen wie der Vergleich zweier Konfigurationen, das Protokollieren aller mit den Konfigurationen verbundenen Aktionen, eine Runtime-API und das HinzufĂŒgen von Sektionen ĂŒber das Web zu erscheinen.

Wie man zufĂ€llig ein Web-GUI fĂŒr Haproxy erstellt

Und als ein ordentlicher UNIX-Administrator, der von freier Software lebt, beschloss ich, mein Wissen mit der Welt zu teilen. Vielleicht kann es ja jemand gebrauchen? Aber dazu musste alles so gestaltet werden, dass man nicht in den Code eingreifen muss, maximal in die Konfigurationsdateien. (Mittlerweile sind die meisten Einstellungen in eine Datenbank gewandert. Meiner Meinung nach lÀsst sich das jetzt einfacher bearbeiten, und bei einem Update gibt es keine Fehler wegen fehlender Parameter in der Konfiguration.)

Nach einem Monat habe ich mein Projekt ohne große Erwartungen auf Github veröffentlicht. Und das war ein Fehler, die Software stellte sich als leicht gefragt heraus und dann begann das Interessante... Die aktive „Nachbearbeitung“ lĂ€uft jetzt schon fast ein Jahr. Manchmal habe ich den Wunsch, das alles aufzugeben, da meine BedĂŒrfnisse schon lange gedeckt sind. Aber warum sollte ich die Möglichkeit brauchen, mit Keepalived und HAProxy ĂŒber eine WeboberflĂ€che einen „Cluster“ einzurichten, wenn es mich maximal ein paar Minuten kostet? Aber anscheinend brauchen die Leute das, und ich finde es auch interessant und es gibt genug zu tun. NatĂŒrlich gibt es auch Funktionen, die ich benötige, wie zum Beispiel die Überwachung von Backend-Servern, ob sie fĂŒr HAProxy erreichbar sind. Wir haben natĂŒrlich ein unternehmensinternes Monitoring, aber dort sitzen Menschen, die oft lange brauchen, um zu reagieren, und da mein Bereich mit der Entwicklung befasst ist, taucht Software auf und verschwindet, sodass ich mich lange durch die BĂŒrokratie kĂ€mpfen muss.

Wie man zufĂ€llig ein Web-GUI fĂŒr Haproxy erstellt

Ich habe mich entschieden, das zu teilen, denn es stellt sich heraus, dass es die einzige kostenlose GUI ist. Vielleicht wird es ja jemandem nĂŒtzlich sein? Link zu GitHub.

Quelle: habr.com

60GB SSD 8Gb DDR4