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

Die moderne Welt der Systemadministratoren hat uns mit schönen Web-Gesichtern so faul gemacht, dass wir nicht einmal Software installieren wollen, die diesen „Typen“ nicht hat (ich habe das Gefühl, als würden gleich Steine ​​von den frommen Heftern fliegen). Nun ja, es ist doch nicht so, dass du ständig an der Grenze kletterst, oder? Alles wäre in Ordnung, wenn die Software installiert, konfiguriert und vergessen würde, aber was tun, wenn Sie ständig dorthin klettern und bearbeiten müssen und natürlich kein Protokoll aller Aktionen vorhanden ist? Schreiben Sie nicht jedes Mal cp cfg cfg_back Mit der Zeit werden Sie verwirrt sein und diese Angelegenheit vergessen.

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

Vor vielen Jahren habe ich einen so wunderbaren Balancer wie Haproxy kennengelernt. Alles ist wunderbar und schön. Ich hatte viele davon und dachte darüber nach, nach einer GUI dafür zu suchen, aber überraschenderweise gab es keine. Eine sehr beliebte Software, und auch ziemlich alt, aber na ja, dachte ich mir und bearbeitete weiterhin ab und zu die Stifte in meinem Lieblings-VI und habe eine Menge offener Tabs mit Statistiken aller aktiven Server. Aber die Zeit kam und ich musste die „Wünsche“ der Leute befriedigen, die Software schrieben, um über http zu funktionieren, und da wurde es interessant …

Meine Hände juckten, meine Augen leuchteten und ich fing an. Genauer gesagt, ich begann darüber nachzudenken, was ich schreiben sollte, um mich an das längst vergessene PHP zu erinnern, irgendwie wollte ich es nicht und es schien, dass es für diese Angelegenheit nicht ganz geeignet war. Am Ende fiel die Wahl auf Python, es wird sich in Zukunft auf jeden Fall als nützlich erweisen, dachte ich und begann, die Informationen aufzunehmen.

Am Anfang waren die Aufgaben nicht so schwierig: die Möglichkeit, Konfigurationen über die Weboberfläche von einem Einstiegspunkt aus zu bearbeiten und dabei frühere Versionen von Konfigurationen zu speichern. Diese nicht besonders große Funktionalität wurde zwar recht schnell umgesetzt, doch dann überkam mich entweder die Faulheit des Admins oder der notorische Perfektionismus und das schien mir natürlich nicht genug. Und dann tauchten Funktionen auf wie: Vergleich zweier Konfigurationen, Protokollierung aller Aktionen im Zusammenhang mit Konfigurationen, Runtime-API und Hinzufügen von Abschnitten über das Web.

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

Und als anständiger UNIX-Administrator, der von freier Software lebt, habe ich beschlossen, sie mit der Welt zu teilen, und vielleicht ist sie für jemand anderen nützlich? Dafür war es aber notwendig, alles so zu machen, dass man nicht in den Code, sondern höchstens in die Config-Butts gehen musste (Jetzt sind die meisten Einstellungen in die Datenbank gewandert. Bei mir schon Dadurch wird es einfacher, sie zu bearbeiten, und es treten keine Fehler bei der Aktualisierung aufgrund des Fehlens eines oder-Parameters auf.

Einen Monat später veröffentlichte ich mein Werk ohne große Erwartungen auf Github. Aber vergebens, die Software erwies sich als leicht gefragt und dann begann der Spaß ... Seit fast einem Jahr wird aktiv „aktualisiert“. Manchmal besteht der Wunsch, alles aufzugeben, weil... Meine Bedürfnisse wurden schon lange gedeckt. Warum brauche ich die Möglichkeit, einen „Cluster“ mit Keepalived und HAProxy über das Web bereitzustellen, wenn ich dafür nur ein paar Minuten brauche? Aber es stellt sich heraus, dass die Leute es brauchen, und ich bin interessiert, und es gibt etwas zu tun. Allerdings gibt es natürlich Funktionen, die ich benötige, zum Beispiel die Überwachung von Backend-Servern und ob diese für Haproxy verfügbar sind. Wir haben natürlich eine Unternehmensüberwachung, aber es gibt dort Leute, die ziemlich lange reagieren können, + weil... Meine Abteilung ist mit der Entwicklung beschäftigt und Software erscheint und verschwindet lange genug, um durch die Bürokratie zu kommen.

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

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

Source: habr.com

Kommentar hinzufügen