Hvordan tilfeldigvis skrive en Web-GUI for Haproxy

Den moderne verden av systemadministratorer har gjort oss så late med vakre nett-ansikter at vi ikke engang ønsker å installere programvare som ikke har denne "fyren" (jeg føler at steiner er i ferd med å fly fra de troende stitcherne) , vel, det er ikke slik at du hele tiden klatrer gjennom linjen, ikke sant? Alt ville vært bra hvis programvaren ble installert, konfigurert og glemt, men hva skal du gjøre hvis du hele tiden trenger å klatre dit, redigere, og selvfølgelig er det ingen logg over alle handlinger, ikke skriv cp cfg cfg_back hver gang, over gang vil du bli forvirret og glemme denne saken.

Hvordan tilfeldigvis skrive en Web-GUI for Haproxy

For mange år siden møtte jeg en så fantastisk balanserer som Haproxy. Alt er fantastisk og vakkert. Jeg hadde mange av dem, og jeg tenkte på å se etter et GUI for det, men overraskende var det ikke en. En veldig populær programvare, og også ganske gammel, men jammen tenkte jeg og fortsatte av og til å redigere pennene i min favoritt vi og ha en haug med åpne faner med statistikk over alle aktive servere. Men tiden kom og jeg måtte tilfredsstille "ønskene" til folk som skrev programvare for å fungere via http, og det var der ting ble interessant...

Hendene mine klødde, øynene lyste opp og jeg begynte. Mer presist begynte jeg å tenke på hva jeg skulle skrive i, for å huske den lenge glemte PHP, på en eller annen måte ville jeg ikke det, og det virket som om det ikke var helt egnet for denne saken. Til slutt falt valget på Python, det kommer garantert godt med i fremtiden tenkte jeg og begynte å ta til meg informasjonen.

I begynnelsen var oppgavene ikke så vanskelige: muligheten til å redigere konfigurasjoner fra nettgrensesnittet fra ett inngangspunkt, og lagre tidligere versjoner av konfigurasjoner. Denne ikke spesielt store funksjonaliteten ble implementert ganske raskt, men så tok enten administratorens latskap eller den beryktede perfeksjonismen over i meg, og dette virket selvfølgelig ikke nok for meg. Og så begynte slike funksjoner å dukke opp som: sammenligning av to konfigurasjoner, logging av alle handlinger relatert til konfigurasjoner, Runtime API og legge til seksjoner via nettet.

Hvordan tilfeldigvis skrive en Web-GUI for Haproxy

Og som en grei UNIX-administrator som lever av gratis programvare, bestemte jeg meg for å dele den med verden, og kanskje den vil være nyttig for noen andre? Men for dette var det nødvendig å gjøre alt på en slik måte at du ikke trengte å gå inn i koden, men høyst inn i config-buttene (Nå har de fleste innstillingene flyttet til databasen. Som for meg har den blir mer praktisk å redigere dem, og det vil ikke være noen feil ved oppdatering på grunn av mangel på noen eller parameter).

En måned senere la jeg ut håndverket mitt på Github uten store forventninger. Men forgjeves, programvaren viste seg å være litt etterspurt, og så begynte moroa... Aktiv "oppdatering" har pågått i nesten et år. Noen ganger er det et ønske om å gi opp alt, fordi... mine behov har vært dekket i lang tid. Vel, hvorfor trenger jeg muligheten til å distribuere en "klynge" med keepalved og HAProxy via nettet, hvis det bare tar meg et par minutter? Men det viser seg at folk trenger det, og jeg er interessert, og det er noe å gjøre. Selv om det selvfølgelig er funksjoner jeg trenger, for eksempel overvåking av backend-servere og om de er tilgjengelige for Haproxy. Vi har selvfølgelig bedriftsovervåking, men det er folk der som kan reagere ganske lenge, + fordi... Min avdeling er engasjert i utvikling og programvare dukker opp og forsvinner lenge nok til å komme gjennom byråkratiet.

Hvordan tilfeldigvis skrive en Web-GUI for Haproxy

Generelt bestemte jeg meg for å dele, fordi det viser seg at dette er den eneste gratis GUI. Hva om noen finner det nyttig? Link til GitHub.

Kilde: www.habr.com

Legg til en kommentar