So schreiben Sie versehentlich eine Web-GUI für Haproxy

Die moderne Welt der Systemadministratoren hat uns mit wunderschönen Web-Gesichtern überhäuft, die nicht einmal Software installieren möchten, bei der es keinen "Kerl" gibt (ich glaube, die Steine ​​werden von den treuen Line-Up-Künstlern wegfliegen). Nun, es ist nicht dieselbe Linie, ständig dorthin zu klettern, oder? Alles wäre in Ordnung, wenn ich installiert, konfiguriert und vergessen hätte, was zu tun ist, wenn Sie ständig klettern, bearbeiten müssen und natürlich kein Protokoll aller Aktionen vorhanden ist. Wenn Sie nicht jedes Mal cp cfg cfg_back schreiben, werden Sie verwirrt und vergessen es .



Vor vielen Jahren traf ich einen so wunderbaren Balancer wie Haproxy. Alles ist wunderbar und schön. Ich habe viele davon und dachte darüber nach, eine grafische Benutzeroberfläche dafür zu suchen, aber überraschenderweise war dies nicht der Fall. Sehr beliebte Software, abgesehen von ziemlich alter, aber na ja, ich dachte und bearbeitete gelegentlich die Stifte in meinem Lieblings-Vi weiter und habe eine Reihe offener Registerkarten mit Statistiken aller aktiven Server. Aber die Zeit ist gekommen und ich musste die "Wunschliste" von Leuten befriedigen, die Software für die Arbeit über http geschrieben haben, und hier begann das Interessante ...

Stifte gekämmt, Augen beleuchtet und ich fing an. Ich begann genauer zu überlegen, worüber ich schreiben sollte, um mich an das längst vergessene PHP zu erinnern, das ich irgendwie nicht wollte, und es schien, dass es für diese Angelegenheit nicht ganz geeignet war. Infolgedessen fiel die Wahl auf Python, in Zukunft dachte ich, dass es nützlich sein würde, und ich begann, Informationen aufzunehmen.

Zu Beginn der Aufgabe waren nicht so kompliziert: Die Möglichkeit, Konfigurationen über die Weboberfläche von einem einzigen Einstiegspunkt aus zu bearbeiten, speichert frühere Versionen von Konfigurationen. Es stellte sich heraus, dass es möglich war, diese nicht sehr große Funktionalität schnell genug zu implementieren, aber dann sprang entweder die Faulheit des Administrators oder der berüchtigte Perfektionismus in mich hinein und es schien mir natürlich nicht genug. Und hier tauchten solche Funktionen auf: Vergleichen von zwei Konfigurationen, Protokollieren aller Aktionen im Zusammenhang mit Konfigurationen, Laufzeit-API und Hinzufügen von Abschnitten über das Web.



Und als anständiger UNIX-Administrator, der auf Kosten freier Software lebt, habe ich beschlossen, mit der Welt zu teilen und für jemand anderen nützlich zu sein? Dafür war es jedoch notwendig, alles zu tun, damit nicht in den Code geklettert werden musste, sondern das Maximum in den Butt-Konfigurationen (Jetzt sind die meisten Einstellungen in die Datenbank verschoben worden. Für mich ist es bequemer geworden, sie zu bearbeiten, und es treten keine Fehler beim Aktualisieren auf, da keine vorhanden sind oder Parameter).

Einen Monat später postete ich mein Handwerk auf Github, vor allem ohne auf irgendetwas zu zählen. Aber vergebens stellte sich heraus, dass die Software leicht gefragt war, und hier begann der Spaß ... Die aktive "Dopilka" läuft seit fast einem Jahr. Manchmal besteht der Wunsch, all dies zu beenden, weil Meine Bedürfnisse sind für eine lange Zeit blockiert. Warum brauche ich die Möglichkeit, einen „Cluster“ mit Keepalived und HAProxy über das Web bereitzustellen, wenn ich ein paar Minuten brauche? Und die Leute finden es notwendig, und ich bin neugierig, und es gibt etwas zu tun. Obwohl ich natürlich einige Funktionen benötige, zum Beispiel die Überwachung von Backend-Servern, sind sie für Haproxy verfügbar. Natürlich haben wir Unternehmensüberwachung, aber es gibt Leute, die lange reagieren können, + weil Meine Abteilung beschäftigt sich mit Entwicklung und Software erscheint oder verschwindet für eine lange Zeit, um die Bürokratie zu durchbrechen.



Im Allgemeinen habe ich mich für das Teilen entschieden, da sich herausstellt, dass dies die einzige kostenlose Benutzeroberfläche ist. Was ist, wenn jemand nützlich ist? Link zu GitHub .

Source: https://habr.com/ru/post/de419865/


All Articles