در سرویس DNS داخلی (Bind) نیاز داریم که IP دامنهی www.digikala.com به 12.12.12.13 تغییر کند.
سرویس BIND بدین شکل پیکربندی شده است ( فایل ها را از لینک انتهای صفحه دریافت نمایید):
توجه: در فرمانهای زیر 127.0.0.1
DNS داخلی ست که در docker-compose.yml
انتهای این سوال موجود است.
با پیکربندی بالا، دامنهی www.digikala.com به 12.12.12.13 Resolve می شود:
اما بقیهی زیردامنههای دیجیکالا Resolve نمیشوند:
راهی پیدا کنید که بقیهی زیردامنه های دیجیکالا از 8.8.8.8 Resolve بشوند ولی www.digikala.com از DNS داخلی به 12.12.12.13 Resolve بشود.
تغییرات خودتان را در محیط تست اعمال کنید و فایل zip شده ارسال نمایید. محتویات فایل zip شده می بایست به صورت زیر می باشد (فایل ها را از لینک انتهای صفحه دریافت نمایید):
فایل های مورد نیاز تست از طریق این لینک قابل دسترس می باشد.
برای دیپلوی سرویسی، Helm Chartی نوشته شده است که به واسطهی Image های تعریف شده در values.yml اقدام به اجرای Container های یک Pod می کند.
پس از اجرای helm template
، خطای زیر رخ می دهد:
با حل مشکل، Deploymentی با یک Pod که متشکل از ۲ کانتینر nginx و php می باشد، باید ساخته شود. بدیهی است که در صورت اضافه کردن image به values.yaml این تعداد افزایش پیدا می کند.
تغییرات خودتان را بر روی deployment.yaml در محیط تست اعمال کنید و فایل zip شده ارسال نمایید. محتویات فایل zip شده می بایست به صورت زیر می باشد (فایل ها را از لینک انتهای صفحه دریافت نمایید):
نکته: از ورژن ۳ Helm استفاده شود.
نکته: فقط deployment.yaml را تغییر بدهید.
فایل های مورد نیاز تست از طریق این لینک قابل دسترس می باشد.
برای تعریف کاربران با سطوح دسترسی متفاوت Ansible Playbook بنویسید که بتوان در MySQL کاربران را با سطوح دسترسی متفاوت تعریف کرد.
کاربران بدین شکل در group_vars تعریف شده اند (این Playbook در لینک انتهای صفحه در دسترس است):
پس از اجرای این Playbook انتظار داریم کاربران طبق این دسترسی ها در MySQL ایجاد شوند.
نکته: در هنگام ارسال، اطلاعات اتصال به MySQL در تسک Ansible را حذف کنید.
تغییرات خود را فقط در فایل roles/grants/tasks/grants.yml
اعمال کنید.
نحوه ی اجرای تست:
تغییرات خودتان را در محیط تست در فایل roles/grants/tasks/grants.yml
اعمال کنید و سپس فایل های خود را به صورت zip شده با ساختار زیر ارسال نمایید.( فایل ها را از لینک انتهای صفحه دریافت نمایید)
فایل های مورد نیاز تست از طریق این لینک قابل دسترس می باشد.
اسکریپتها باید ورودی را از فایل داده شده بخوانند بدین شکل:
اسکریپتها باید خروجی را در stdout چاپ کنند.
اسکریپتها باید خروجی خود را مطابق با فرمت داده شده چاپ کنند.
فایلی شامل چهار ستون از اعداد داده شده است. ستون اول شامل یک حرف انگلیسی است که شناسه هر سرور محسوب می شود. سه ستون دیگر هر کدام شامل شاخصهای مربوط به سرورها هستند که به ترتیب، شاخص استفاده سی پی یو، رم و شبکه است. هر شاخص در بازه ی بستهی ۰ تا ۱۰۰ قرار دارد.
اسکریپتی بنویسید که تشخصی دهید آیا سرورها سلامت هستند یا نه. مبنای سلامتی هر سرور این است که هر شاخص بزرگتر یا مساوی ۵۰ باشد.
اسکریپتی بنویسید که بتواند تعداد اسامی افراد را از متن زیر استخراج کند. دقت کنید اسمها با یک سری جداکننده از هم جدا شدهاند که جداکنندهها به شرح زیر هستند:
,
|
!
$
\
تغییرات خودتان را در محیط تست اعمال کنید و سپس فایل های خود را به صورت zip شده با ساختار زیر ارسال نمایید. (فایل ها را از لینک انتهای صفحه دریافت نمایید).
فایل های مورد نیاز تست از طریق این لینک قابل دسترسی می باشد.
اپلیکیشنی داریم با دو Endpoint:
Endpoint | Status Code |
---|---|
/working | 200 |
/not-working | 500 |
اپلیکیشن در حالت Debug Mode اجرا شده است و در صورت وجود خطا Stack Trace کد را نمایش میدهد.
در جلوی اپلیکیشن HA Proxy داریم که به عنوان Reverse Proxy و Load Balancer عمل می کند.
نیاز داریم در صورتی که اپلیکیشن خطایی داشت به کاربر صفحه ی 403 نشان بدهیم، اما به برنامه نویسان و DevOps صفحه ی Stack Trace را نشان بدهیم که بتوانند مشکل را پیدا و حل بکند. برنامه نویسان و DevOps یک Header مخصوص برای این کار دارند.
Header | Value |
---|---|
staff | f34ac726dd7486a22bc0 |
در صورت وجود این Header در ریکوئست باید به کاربر Stack Trace به صورت کامل نمایش داده شود.
- شرایط تست
تنظیمات HA Proxy به شرح زیر می باشد( فایل ها را از لینک انتهای صفحه دریافت نمایید):
نکته: برای نمایش 403 از errorfile 403 در HA Proxy استفاده شود
دستور مربوط به انجام تست:
نکته: ورژن HA Proxy 2.3.4 مورد استفاده است
تغییرات خودتان را در محیط تست اعمال کنید و سپس فایل های خود را به صورت zip شده با ساختار زیر ارسال نمایید.( فایل ها را از لینک انتهای صفحه دریافت نمایید)
نکته: هنگام ارسال در فایل haproxy.cfg بخش backend سرور را تغییر ندهید
فایل های مورد نیاز تست از طریق این لینک قابل دسترسی می باشد.