Wie man zufällig eine Web-GUI für Haproxy erstellt

Die moderne Welt der Systemadministratoren hat uns durch ansprechende Web-Oberflächen verwöhnt, sodass man kaum noch Software installieren möchte, die nicht über diese „GUI“ verfügt (ich spüre schon, wie die Kritiker anmerken werden, wie unorthodox das ist). Müssen wir wirklich ständig über die Kommandozeile darauf zugreifen? Wenn man die Software einmal installiert und konfiguriert hat, möchte man sie am liebsten vergessen. Doch was, wenn man regelmäßig Anpassungen vornehmen muss und es kein Protokoll aller Aktivitäten gibt? Man kann nicht jedes Mal cp cfg cfg_back eintippen; im Laufe der Zeit verliert man sonst den Überblick und gibt schließlich auf.

Wie man zufällig eine Web-GUI für Haproxy erstellt

Vor vielen Jahren bin ich auf den wunderbaren Lastenausgleich Haproxy gestoßen. Alles lief wunderbar und ordentlich. Ich habe inzwischen viele davon und begann darüber nachzudenken, eine GUI dafür zu finden, aber überraschenderweise gab es keine. Es handelt sich um eine sehr beliebte und relativ alte Software. Ich dachte mir, na gut, und fuhr fort, gelegentlich in meinem geliebten vi Handanpassungen vorzunehmen und eine Menge geöffneter Tabs mit Statistiken aller aktiven Instanzen zu haben. ServerDoch schließlich war es an der Zeit, den Wünschen der Menschen Rechnung zu tragen, die Software für die Arbeit über HTTP entwickelten. Hier begann das Interessante…

Die Vorfreude stieg, und ich machte mich ans Werk. Genauer gesagt, begann ich darüber nachzudenken, womit ich schreiben sollte. An PHP, das ich lange nicht mehr verwendet hatte, dachte ich, aber es schien mir nicht ganz geeignet zu sein. Schließlich fiel die Wahl auf Python, von dem ich überzeugt war, dass es mir in Zukunft nützlich sein würde, und ich begann, Informationen aufzusaugen.

Zu Beginn waren die Anforderungen nicht allzu kompliziert: die Möglichkeit, Konfigurationen über eine Weboberfläche von einem einzigen Zugangspunkt aus zu bearbeiten und frühere Versionen der Konfigurationen zu speichern. Diese nicht besonders umfangreiche Funktionalität konnte ich recht schnell umsetzen, doch da schlug meine Admin-Trägheit oder möglicherweise mein Perfektionismus durch, und das schien mir natürlich nicht genug zu sein. So begannen Features wie der Vergleich zweier Konfigurationen, die Protokollierung aller mit den Konfigurationen verbundenen Aktionen, eine Runtime-API und das Hinzufügen von Sektionen über das Web zu entstehen.

Wie man zufällig eine Web-GUI für Haproxy erstellt

Als ein anständiger UNIX-Administrator, der von Open Source lebt, habe ich beschlossen, mein Wissen mit der Welt zu teilen, vielleicht ist es ja für jemanden nützlich? Dabei wollte ich es so gestalten, dass man nicht im Code herumschrauben muss, sondern maximal in den Konfigurationen arbeiten kann. (Heute sind die meisten Einstellungen in die Datenbank umgezogen. Meiner Meinung nach ist es jetzt einfacher, sie zu bearbeiten, und beim Update treten keine Fehler aufgrund fehlender Parameter in der Konfiguration auf.)

Nach einem Monat habe ich mein Projekt ohne große Erwartungen auf GitHub veröffentlicht. Umso überraschender war es, dass die Software durchaus gefragt war, und schon begann das spannende Abenteuer… Die aktive Entwicklung läuft jetzt seit fast einem Jahr. Manchmal überkommt mich der Gedanke, alles hinzuschmeißen, denn meine eigenen Bedürfnisse sind längst erfüllt. Aber warum sollte ich die Möglichkeit brauchen, einen "Cluster" mit keepalived und HAProxy über eine Web-Oberfläche bereitzustellen, wenn ich das in höchstens wenigen Minuten selbst erledigen kann? Überraschenderweise brauchen viele genau solche Lösungen, und es bleibt ja auch interessant sowie spannend. Natürlich gibt es auch Funktionen, die ich benötige, wie das Monitoring der Backend-Server, um festzustellen, ob sie für HAProxy verfügbar sind. Wir haben selbstverständlich ein unternehmensinternes Monitoring, doch dort sitzen Leute, die nicht immer so schnell reagieren können, und da mein Team für die Entwicklung zuständig ist, ändert sich die Software oftmals und es braucht Zeit, um die bürokratischen Hürden zu überwinden.

Wie man zufällig eine Web-GUI für Haproxy erstellt

Ich habe mich entschieden, meine Erfahrungen zu teilen, denn anscheinend ist das die einzige kostenlose GUI. Vielleicht kann es ja jemand verwenden? Link zu GitHub.

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster