Paano aksidenteng magsulat ng isang Web-GUI para sa Haproxy

Ang modernong mundo ng mga tagapangasiwa ng system ay naging tamad sa amin sa magagandang web-face na kahit na hindi namin nais na mag-install ng software na walang ganitong "lalaki" (Pakiramdam ko ay lilipad na ang mga bato mula sa mga debotong mananahi) , well, hindi naman para tuloy-tuloy na umaakyat sa linya diba? Magiging maayos ang lahat kung ang software ay na-install, na-configure at nakalimutan, ngunit kung ano ang gagawin kung kailangan mong patuloy na umakyat doon, mag-edit, at siyempre walang log ng lahat ng mga aksyon, huwag magsulat ng cp cfg cfg_back sa bawat oras, pagkatapos oras na malito ka at makakalimutan mo ang bagay na ito.

Paano aksidenteng magsulat ng isang Web-GUI para sa Haproxy

Maraming taon na ang nakalilipas nakilala ko ang napakagandang balancer gaya ng Haproxy. Lahat ay kahanga-hanga at maganda. Marami ako sa kanila at naisip kong maghanap ng GUI para dito, ngunit nakakagulat na wala ni isa. Isang napakasikat na software, at medyo luma na rin, ngunit oh well, naisip ko at nagpatuloy paminsan-minsang i-edit ang mga panulat sa paborito kong vi at mayroong isang grupo ng mga bukas na tab na may mga istatistika ng lahat ng aktibong server. Ngunit dumating ang oras at kinailangan kong bigyang-kasiyahan ang "kagustuhan" ng mga taong sumulat ng software upang gumana sa pamamagitan ng http, at doon naging kawili-wili ang mga bagay...

Nangangati ang mga kamay ko, nagliwanag ang mata ko at nagsimula na ako. Mas tiyak, nagsimula akong mag-isip tungkol sa kung ano ang isusulat, upang alalahanin ang matagal nang nakalimutang PHP, kahit papaano ay hindi ko gusto, at tila hindi ito ganap na angkop para sa bagay na ito. Sa huli, ang pagpipilian ay nahulog sa Python, tiyak na magiging kapaki-pakinabang ito sa hinaharap, naisip ko, at nagsimulang sumipsip ng impormasyon.

Sa simula, ang mga gawain ay hindi napakahirap: ang kakayahang mag-edit ng mga config mula sa web interface mula sa isang entry point, na nagse-save ng mga nakaraang bersyon ng mga config. Ang hindi partikular na malaking pag-andar na ito ay ipinatupad nang napakabilis, ngunit pagkatapos ay ang katamaran ng admin o ang kilalang-kilalang pagiging perpekto ay pumalit sa akin at siyempre ito ay tila hindi sapat sa akin. At pagkatapos ay nagsimulang lumitaw ang mga naturang feature bilang: paghahambing ng dalawang config, pag-log ng lahat ng aksyon na nauugnay sa mga config, Runtime API at pagdaragdag ng mga seksyon sa pamamagitan ng web.

Paano aksidenteng magsulat ng isang Web-GUI para sa Haproxy

At bilang isang disenteng administrator ng UNIX na nabubuhay sa libreng software, nagpasya akong ibahagi ito sa mundo, at marahil ito ay magiging kapaki-pakinabang sa ibang tao? Ngunit para dito kinakailangan na gawin ang lahat sa paraang hindi mo kailangang pumunta sa code, ngunit higit sa lahat sa config butts (Ngayon karamihan sa mga setting ay lumipat sa database. Para sa akin, mayroon itong maging mas maginhawa upang i-edit ang mga ito at walang mga error kapag nag-a-update dahil sa kakulangan ng anuman o parameter).

Pagkalipas ng isang buwan, nai-post ko ang aking craft sa Github nang hindi inaasahan. Ngunit walang kabuluhan, ang software ay naging bahagyang in demand at pagkatapos ay nagsimula ang kasiyahan... Ang aktibong "pag-update" ay nangyayari sa halos isang taon. Minsan may pagnanais na isuko ang lahat, dahil... matagal nang natugunan ang aking mga pangangailangan. Well, bakit kailangan ko ng pagkakataong mag-deploy ng "cluster" na may keepalived at HAProxy sa pamamagitan ng web, kung aabutin lang ako ng ilang minuto? Ngunit lumalabas na kailangan ito ng mga tao, at interesado ako, at may dapat gawin. Bagaman, siyempre, may mga function na kailangan ko, halimbawa, pagsubaybay sa mga backend server at kung magagamit ang mga ito para sa Haproxy. Syempre, may corporate monitoring kami, pero may mga tao doon na medyo matagal magreact, + kasi... Ang aking departamento ay nakikibahagi sa pag-unlad at lumilitaw ang software at nawawala nang sapat na mahabang panahon upang makalusot sa burukrasya.

Paano aksidenteng magsulat ng isang Web-GUI para sa Haproxy

Sa pangkalahatan, nagpasya akong ibahagi, dahil ito ay lumalabas na ito lamang ang libreng GUI. Paano kung makita ng isang tao na ito ay kapaki-pakinabang? Link sa GitHub.

Pinagmulan: www.habr.com

Magdagdag ng komento