Como escrever acidentalmente uma Web-GUI para Haproxy

O mundo moderno dos administradores de sistemas nos acostumou com interfaces web tão bonitas que nem temos vontade de usar software sem essa tal de "GUI" (sinto que pedras vão voar dos puristas agora), afinal, não é sempre que se deve ficar entrando na linha de comando, certo? Tudo bem se você instala, configura o software e esquece, mas o que fazer quando é preciso acessar constantemente, corrigir e, claro, não há um log de todas as ações? Não vamos ficar escrevendo cada vez cp cfg cfg_back, com o tempo você se perde e acaba desistindo disso.

Como escrever acidentalmente uma Web-GUI para Haproxy

Há muitos anos, conheci um balanceador maravilhoso chamado Haproxy. Tudo era perfeito e bonito. Acabou que eu tinha muitos e comecei a pensar em buscar uma GUI para ele, mas, para minha surpresa, não havia nenhuma. Um software muito popular e, além disso, relativamente antigo. Mas tudo bem, pensei, e continuei editando de vez em quando manualmente no meu querido vi, com várias abas abertas mostrando a estatística de todos os ativos. servidores. Mas chegou a hora em que precisei atender as "desejos" das pessoas que escreviam software para trabalhar via http, e foi aqui que as coisas começaram a ficar interessantes...

As mãos coçavam, os olhos brilharam e eu comecei. Na verdade, comecei a pensar sobre o que escrever, relembrando o PHP que havia esquecido há muito tempo, mas não estava com vontade, e parecia que ele não era o mais adequado para isso. No final, escolhi Python, pensando que seria útil no futuro, e comecei a absorver informações.

No início, as tarefas não eram tão complicadas: a capacidade de editar configurações a partir de uma interface web de um único ponto de entrada, salvando as versões anteriores das configurações. Essa funcionalidade, não tão grande assim, consegui implementar rapidamente, mas então despertou em mim uma espécie de preguiça administrativa ou o aclamado perfeccionismo, e achei que isso não era suficiente, é claro. E então começaram a surgir recursos como: comparação de duas configurações, registro de todas as ações relacionadas às configurações, API em tempo de execução e a adição de seções via web.

Como escrever acidentalmente uma Web-GUI para Haproxy

E como um administrador UNIX respeitável que vive de software livre, decidi compartilhar com o mundo, quem sabe poderia ajudar alguém? Mas para isso, era necessário fazer tudo de forma que não fosse preciso mexer no código, mas no máximo nos arquivos de configuração (atualmente, a maioria das configurações foi transferida para um banco de dados. Na minha opinião, ficou mais fácil editá-las e, ao atualizar, não haverá erros devido à falta de algum parâmetro nas configurações).

Após um mês, eu postei minha criação no Github sem grandes expectativas. E me enganei, o software acabou se tornando um pouco popular e então começou a parte mais interessante... O trabalho ativo de desenvolvimento já dura quase um ano. Às vezes, tenho vontade de desistir, já que minhas necessidades foram atendidas há muito tempo. Então, para que eu precisaria da capacidade de implantar um "cluster" com keepalived e HAProxy por meio de uma interface web, se isso me leva no máximo alguns minutos? Mas as pessoas parecem precisar disso, além de ser interessante para mim e ter algo com que me ocupar. Embora, claro, existam funções de que eu realmente preciso, como o monitoramento dos servidores backend, para saber se estão disponíveis para o HAProxy. Temos um monitoramento corporativo, mas lá estão pessoas que podem demorar bastante para reagir, e como meu departamento lida com desenvolvimento, o software aparece e desaparece fazendo eu ter que passar por muita burocracia.

Como escrever acidentalmente uma Web-GUI para Haproxy

Decidi compartilhar, pois parece que este é o único GUI gratuito. E quem sabe pode ser útil para alguém? Link para o GitHub.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster