حامد مسئول تعدادی سرور پایتونی است که با یک haproxy درخواستهای کاربرها را بین تمامی سرورها تقسیم میکند.
از بین این سرورها تعدادی به طور تصادفی مشکل پیدا میکنند. مشکل به این صورت است که این سرورها به جای statusCode از نوع 200، جواب با statusCode از نوع 500 میدهند.
حال حامد میخواهد با یک Ansible Playbook سرورهایی که مشکل دارند را از مدار خارج کند. به حامد در این امر کمک کنید.
شما موظف هستید که یک فایل tasks.yml را بسازید که سرورهایی که مشکل دارند را پیدا کند و آنها را از سرورهای پشت haproxy خارج کند.
برای دانلود پروژه اولیه روی این لینک کلیک کنید.
توضیح سرور پایتونی
سرور پایتونی فقط دارای یک مسیر (route) / میباشد. که با پول کردن ایمیج داکر زیر میتوانید آن را تست کنید.
registry.gitlab.com/qio/custom/135803/ansibleflaskapi
این مسیر یا همان route در واقع اسم سرور را به ما پاسخ میدهد. برای مثال اگر اسم سرور server32 باشد، جواب "server32" خواهد بود.
هر یک از سرورها دارای یک Enviroment Variable به نام STATUS میباشد که به طور پیش فرض روی 200 گذاشته شدهاند. شما میتوانید با تغییر این متغیر به عدد 500 این مشکل اپ رو تکرار کنید.
برای آشنایی بیشتر با این سرور، فایل docker-compose را مشاهده و بررسی کنید.
نکات تکمیلی
-
اجرای فایل ansible باید روی
localhostباشد. -
نام فایل playbook باید
tasks.ymlباشد. -
تعداد سرورهایی که داخل کانفیگ
haproxyهستند و همینطور تعداد سرورهایی که مشکل دارند تصادفی است. پسplaybookمورد نظر باید کاملا dynamic باشد. -
در صورت نیاز! بدانید پروژه حین داوری در فولدر
/home/projectقرار دارد. ممکن است پاسخ شما نیازی به این نکته نداشته باشد.
-
فقط
tasks.ymlرا تغییر داده و ارسال نمایید. -
در صورتی که سروری، خراب تشخیص داده شد، باید آن از کانفیگ haproxy خارح شود.
نحوهی ارسال جواب
شما فقط میتوانید محتوای فایل tasks.yml را تغییر دهید. تغییرات خودتان را بر روی tasks.yml اعمال کنید و فایل اصلاح شده را ارسال نمایید. همچنین در نظر داشته باشید نحوه اجرای فایل tasks.yml شما به صورت زیر خواهد بود:
ansible-playbook tasks.yml
ارسال پاسخ برای این سؤال