چگونه به طور تصادفی یک Web-GUI برای Haproxy بنویسیم

دنیای مدرن مدیران سیستم ما را با چهره های وب زیبا آنقدر تنبل کرده است که حتی نمی خواهیم نرم افزاری را نصب کنیم که این "مرد" را نداشته باشد (من احساس می کنم سنگ ها در شرف پرواز از لاینرهای مومن هستند) خوب، اینطور نیست که مدام در حال بالا رفتن از خط هستید، درست است؟ اگر نرم افزار نصب، پیکربندی و فراموش شده بود، همه چیز خوب بود، اما اگر نیاز به صعود مداوم به آنجا دارید، ویرایش، و البته گزارشی از همه اقدامات وجود ندارد، چه کاری باید انجام دهید، هر بار cp cfg cfg_back را ننویسید. زمانی که گیج می شوید و این موضوع را فراموش می کنید.

چگونه به طور تصادفی یک Web-GUI برای Haproxy بنویسیم

سال ها پیش با متعادل کننده فوق العاده ای مانند هاپروکسی آشنا شدم. همه چیز فوق العاده و زیباست. من تعداد زیادی از آنها را داشتم و به دنبال یک رابط کاربری گرافیکی برای آن بودم، اما در کمال تعجب یکی از آنها وجود نداشت. یک نرم افزار بسیار محبوب، و همچنین بسیار قدیمی، اما اوه خوب، فکر کردم و به ویرایش گهگاهی قلم ها در vi مورد علاقه خود ادامه دادم و یکسری تب باز با آمار تمام سرورهای فعال دارم. اما زمان آن فرا رسید و من مجبور شدم «خواسته‌های» افرادی را که نرم‌افزاری را برای کار از طریق http می‌نوشتند، برآورده کنم، و اینجا بود که همه چیز جالب شد…

دستام خارش کرد، چشمام برق زد و شروع کردم. به طور دقیق تر ، شروع کردم به فکر کردن در مورد اینکه در چه چیزی بنویسم ، تا PHP را که مدت ها فراموش شده بود به یاد بیاورم ، به نوعی نمی خواستم ، و به نظر می رسید که برای این موضوع کاملاً مناسب نیست. در نهایت، انتخاب به پایتون افتاد، فکر کردم در آینده قطعا مفید خواهد بود و شروع به جذب اطلاعات کردم.

در ابتدا، کارها چندان دشوار نبودند: امکان ویرایش تنظیمات از رابط وب از یک نقطه ورودی، ذخیره نسخه های قبلی تنظیمات. این قابلیت نه چندان بزرگ خیلی سریع اجرا شد، اما سپس یا تنبلی ادمین یا کمال گرایی بدنام در من حاکم شد و البته این به نظرم کافی نبود. و سپس چنین ویژگی هایی ظاهر شد: مقایسه دو پیکربندی، ثبت کلیه اقدامات مربوط به تنظیمات، Runtime API و افزودن بخش ها از طریق وب.

چگونه به طور تصادفی یک Web-GUI برای Haproxy بنویسیم

و به عنوان یک مدیر شایسته یونیکس که با نرم افزار رایگان زندگی می کند، تصمیم گرفتم آن را با جهان به اشتراک بگذارم، و شاید برای شخص دیگری مفید باشد؟ اما برای این کار لازم بود همه چیز را طوری انجام دهیم که مجبور نباشید وارد کد شوید، بلکه حداکثر وارد تنظیمات تنظیمات شوید (الان اکثر تنظیمات به پایگاه داده منتقل شده اند. در مورد من، این کار را انجام داده است. ویرایش آنها راحت تر می شود و در هنگام به روز رسانی به دلیل عدم وجود پارامتر یا هیچ خطایی وجود نخواهد داشت).

یک ماه بعد، کاردستی خود را بدون انتظار زیاد در Github پست کردم. اما بیهوده، نرم افزار کمی مورد تقاضا بود و سپس سرگرمی شروع شد ... "به روز رسانی" فعال تقریباً یک سال است که ادامه دارد. گاهی اوقات میل به رها کردن همه چیز وجود دارد، زیرا ... نیازهای من برای مدت طولانی پوشش داده شده است. خوب، چرا من به این فرصت نیاز دارم که یک "خوشه" با keepalived و HAProxy از طریق وب مستقر کنم، اگر فقط چند دقیقه طول بکشد؟ اما معلوم شد که مردم به آن نیاز دارند، و من علاقه مندم، و کاری برای انجام دادن وجود دارد. اگرچه، البته، توابعی وجود دارد که به آنها نیاز دارم، به عنوان مثال، نظارت بر سرورهای باطن و اینکه آیا آنها برای Haproxy در دسترس هستند یا خیر. ما البته نظارت شرکتی داریم، اما افرادی هستند که می توانند برای مدت طولانی واکنش نشان دهند، + زیرا... بخش من درگیر توسعه است و نرم افزار به اندازه کافی ظاهر و ناپدید می شود تا راه خود را از طریق بوروکراسی باز کند.

چگونه به طور تصادفی یک Web-GUI برای Haproxy بنویسیم

به طور کلی، تصمیم گرفتم به اشتراک بگذارم، زیرا معلوم شد که این تنها رابط کاربری گرافیکی رایگان است. اگر کسی آن را مفید بداند چه؟ پیوند به GitHub.

منبع: www.habr.com

اضافه کردن نظر