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

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster