Comment écrire accidentellement une interface graphique Web pour Haproxy

Le monde moderne des administrateurs système nous a rendus si paresseux avec de beaux visages Web que nous ne voulons même pas installer de logiciels qui n'ont pas ce très « gars » (j'ai l'impression que des pierres sont sur le point de voler des fervents couturiers) , eh bien, ce n'est pas comme si vous grimpiez constamment à travers la ligne, n'est-ce pas ? Tout irait bien si le logiciel était installé, configuré et oublié, mais que faire si vous devez constamment y grimper, le modifier, et bien sûr, il n'y a pas de journal de toutes les actions, n'écrivez pas cp cfg cfg_back à chaque fois, plus le temps, vous serez confus et oublierez cette question.

Comment écrire accidentellement une interface graphique Web pour Haproxy

Il y a de nombreuses années, j'ai rencontré un équilibreur aussi merveilleux que Haproxy. Tout est merveilleux et beau. J’en avais beaucoup et j’ai pensé à chercher une interface graphique pour cela, mais étonnamment, il n’y en avait pas. Un logiciel très populaire, et aussi assez ancien, mais bon, j'ai pensé et continué à éditer occasionnellement les stylos de mon vi préféré et à avoir un tas d'onglets ouverts avec des statistiques de tous les serveurs actifs. Mais le moment est venu et j’ai dû satisfaire les « désirs » des gens qui écrivaient des logiciels pour travailler via http, et c’est là que les choses sont devenues intéressantes…

Mes mains me démangeaient, mes yeux se sont illuminés et j'ai commencé. Plus précisément, j'ai commencé à réfléchir à quoi écrire, à me souvenir du PHP oublié depuis longtemps, d'une manière ou d'une autre, je ne voulais pas, et il semblait que ce n'était pas tout à fait adapté à ce sujet. En fin de compte, le choix s'est porté sur Python, il sera certainement utile à l'avenir, ai-je pensé et j'ai commencé à absorber les informations.

Au début, les tâches n'étaient pas si difficiles : la possibilité de modifier les configurations depuis l'interface Web à partir d'un seul point d'entrée, en sauvegardant les versions précédentes des configurations. Cette fonctionnalité pas particulièrement volumineuse a été mise en œuvre assez rapidement, mais ensuite soit la paresse de l'administrateur, soit le perfectionnisme notoire ont pris le dessus en moi et bien sûr, cela ne m'a pas semblé suffisant. Et puis des fonctionnalités telles que la comparaison de deux configurations, la journalisation de toutes les actions liées aux configurations, l'API Runtime et l'ajout de sections via le Web ont commencé à apparaître.

Comment écrire accidentellement une interface graphique Web pour Haproxy

Et en tant qu'administrateur UNIX décent qui vit de logiciels libres, j'ai décidé de les partager avec le monde, et peut-être qu'il sera utile à quelqu'un d'autre ? Mais pour cela il fallait tout faire de manière à ce qu'il ne soit pas nécessaire d'entrer dans le code, mais tout au plus dans les fesses de configuration (Maintenant, la plupart des paramètres ont été déplacés vers la base de données. Quant à moi, il a deviendra plus pratique pour les éditer et il n'y aura aucune erreur lors de la mise à jour en raison de l'absence de paramètre ou).

Un mois plus tard, j'ai posté mon métier sur Github sans trop d'attentes. Mais en vain, le logiciel s'est avéré légèrement demandé et puis le plaisir a commencé... La « mise à jour » active dure depuis près d'un an. Parfois, on a envie de tout abandonner, parce que... mes besoins sont couverts depuis longtemps. Eh bien, pourquoi ai-je besoin de pouvoir déployer un « cluster » avec keepalived et HAProxy via le Web, si cela ne me prend que quelques minutes ? Mais il s’avère que les gens en ont besoin, et cela m’intéresse, et il y a quelque chose à faire. Bien que, bien sûr, j'ai besoin de certaines fonctions, par exemple pour surveiller les serveurs backend et savoir s'ils sont disponibles pour Haproxy. Nous avons bien sûr une surveillance d'entreprise, mais il y a des gens là-bas qui peuvent réagir assez longtemps, + parce que... Mon département est engagé dans le développement et les logiciels apparaissent et disparaissent suffisamment longtemps pour passer à travers la bureaucratie.

Comment écrire accidentellement une interface graphique Web pour Haproxy

En général, j'ai décidé de partager, car il s'avère que c'est la seule interface graphique gratuite. Et si quelqu'un le trouve utile ? Lien vers GitHub.

Source: habr.com

Ajouter un commentaire