حامد مسئول تعدادی سرور پایتونی است که با یک 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
ارسال پاسخ برای این سؤال