Hur man av misstag skriver ett webbgränssnitt för Haproxy

Den moderna världen av systemadministratörer har gjort oss lata med vackra webbansikten, att det inte ens är en önskan att installera programvara där det inte finns den här "killen" (jag känner att stenar kommer flyga från ortodoxa klottrar), ja, det är det inte klättrar alltid dit genom linjen, eller hur? Allt skulle vara bra om programvaran var installerad, konfigurerad och glömd, men vad ska du göra om du ständigt behöver klättra dit, redigera, och naturligtvis finns det ingen logg över alla åtgärder, skriv inte cp cfg cfg_back varje gång, över tid du kommer att bli förvirrad och glömma den här saken.

Hur man av misstag skriver ett webbgränssnitt för Haproxy

För många år sedan träffade jag en så underbar balanserare som Haproxy. Allt är underbart och vackert. Jag hade många av dem och jag funderade på att hitta ett GUI för det, men överraskande nog fanns det inte där. Väldigt populär mjukvara, dessutom ganska gammal, men jaja, tänkte jag och fortsatte då och då att redigera handtagen i min favorit vi och ha ett gäng öppna flikar med statistik över alla aktiva servrar. Men tiden har kommit och jag var tvungen att tillfredsställa "önskelistan" av människor som skrev programvara för att fungera via http, och det var här det intressanta började ...

Det kliade i händerna, mina ögon lyste upp och jag började. Närmare bestämt började jag fundera på vad jag skulle skriva om, för att komma ihåg det sedan länge bortglömda PHP, på något sätt kände jag inte för det, och det verkade som att det inte var riktigt lämpligt för den här verksamheten. Som ett resultat föll valet på Python, jag trodde att det definitivt skulle komma väl till pass i framtiden, och absorptionen av information började.

I början var uppgifterna inte så svåra: möjligheten att redigera konfigurationer från webbgränssnittet från en ingångspunkt, spara tidigare versioner av konfigurationer. Det var möjligt att implementera detta, inte särskilt stor funktionalitet ganska snabbt, men sedan hoppade antingen administratörslatan eller den beryktade perfektionismen i mig, och det tyckte jag naturligtvis inte räckte till. Och sedan började sådana funktioner dyka upp som: jämföra två konfigurationer, logga alla åtgärder relaterade till konfigurationer, Runtime API och lägga till sektioner via webben.

Hur man av misstag skriver ett webbgränssnitt för Haproxy

Och som en anständig UNIX-administratör som lever på fri programvara, bestämde jag mig för att dela den med världen, och någon annan kommer väl till pass? Men för detta var det nödvändigt att göra allt så att du inte behövde klättra in i koden, utan som mest in i konfigurationsknapparna (Nu har de flesta inställningarna flyttats till databasen. För mig har det blivit bekvämare för att redigera dem och det kommer inte att uppstå några fel under uppdateringen på grund av avsaknaden av någon form av konfiguration i konfigurationen eller parametern).

En månad senare lade jag upp mitt hantverk på Github utan att riktigt räkna med någonting. Och förgäves visade sig programvaran vara något efterfrågad, och sedan började det mest intressanta ... Aktiv "efterbehandling" har pågått i nästan ett år. Ibland finns det en önskan att sluta med allt detta, eftersom. Mina behov har täckts länge. Tja, varför behöver jag möjligheten att distribuera ett "kluster" med keepalived och HAProxy genom webbansiktet, om det tar mig som mest ett par minuter? Och det visar sig att folk behöver det, och jag är intresserad, och det finns något att göra. Även om det såklart finns funktioner som jag behöver, till exempel hur man övervakar backend-servrar, om de är tillgängliga för Haproxy. Självklart har vi företagsbevakning, men det finns folk som kan reagera ganska länge, + pga min avdelning håller på att utveckla och mjukvara kommer och går tillräckligt länge för att ta sig igenom byråkratin.

Hur man av misstag skriver ett webbgränssnitt för Haproxy

I allmänhet bestämde jag mig för att dela, eftersom det visar sig att detta är det enda gratis GUI. Tänk om det kommer väl till pass för någon? Länk till GitHub.

Källa: will.com

Lägg en kommentar