Como escrever acidentalmente uma Web-GUI para Haproxy

O mundo moderno dos administradores de sistema nos deixou tão preguiçosos com lindos web-faces que nem queremos instalar software que não tenha esse “cara” (sinto como se pedras estivessem prestes a voar dos devotos costureiros) , bem, não é como se você estivesse constantemente subindo na linha, certo? Tudo ficaria bem se o software fosse instalado, configurado e esquecido, mas o que fazer se você precisar subir lá constantemente, editar e, claro, não há registro de todas as ações, não escreva cp cfg cfg_back toda vez, acabou vez que você ficará confuso e esquecerá esse assunto.

Como escrever acidentalmente uma Web-GUI para Haproxy

Muitos anos atrás, conheci um balanceador maravilhoso como o Haproxy. Tudo é maravilhoso e lindo. Eu tinha muitos deles e pensei em procurar uma GUI para eles, mas surpreendentemente não havia. Um software muito popular, e também bastante antigo, mas tudo bem, pensei e continuei editando ocasionalmente as canetas no meu vi favorito e tendo um monte de abas abertas com estatísticas de todos os servidores ativos. Mas chegou a hora e eu tive que satisfazer os “desejos” das pessoas que escreviam software para funcionar via http, e foi aí que as coisas ficaram interessantes…

Minhas mãos coçaram, meus olhos brilharam e eu comecei. Mais precisamente, comecei a pensar no que escrever, a lembrar o PHP há muito esquecido, de alguma forma eu não queria, e parecia que não era totalmente adequado para esse assunto. No final, a escolha recaiu sobre o Python, com certeza será útil no futuro, pensei, e comecei a absorver as informações.

No início, as tarefas não eram tão difíceis: a capacidade de editar configurações da interface web a partir de um ponto de entrada, salvando versões anteriores de configurações. Essa funcionalidade não particularmente grande foi implementada rapidamente, mas então a preguiça do administrador ou o notório perfeccionismo tomaram conta de mim e, claro, isso não me pareceu suficiente. E então começaram a aparecer recursos como: comparação de duas configurações, registro de todas as ações relacionadas às configurações, API Runtime e adição de seções via web.

Como escrever acidentalmente uma Web-GUI para Haproxy

E como um administrador UNIX decente que vive de software livre, decidi compartilhá-lo com o mundo, e talvez seja útil para outra pessoa? Mas para isso foi necessário fazer tudo de forma que não fosse necessário entrar no código, mas no máximo nos botões de configuração (Agora a maioria das configurações foram movidas para o banco de dados. Quanto a mim, tem ficará mais conveniente editá-los e não haverá erros na atualização por falta de algum parâmetro ou).

Um mês depois, postei meu trabalho no Github sem muita expectativa. Mas em vão, o software acabou sendo um pouco procurado e então a diversão começou... A “atualização” ativa já dura quase um ano. Às vezes há vontade de desistir de tudo, porque... minhas necessidades foram atendidas há muito tempo. Bem, por que preciso da oportunidade de implantar um “cluster” com keepalived e HAProxy via web, se isso leva apenas alguns minutos? Mas acontece que as pessoas precisam disso, estou interessado e há algo para fazer. Embora, é claro, existam funções que eu preciso, por exemplo, monitorar servidores backend e se eles estão disponíveis para Haproxy. Claro que temos monitoramento corporativo, mas tem gente lá que consegue reagir por bastante tempo, + porque... Meu departamento está engajado no desenvolvimento e o software aparece e desaparece por tempo suficiente para passar pela burocracia.

Como escrever acidentalmente uma Web-GUI para Haproxy

Em geral, decidi compartilhar, porque esta é a única GUI gratuita. E se alguém achar útil? Link para GitHub.

Fonte: habr.com

Adicionar um comentário