رفع مشکل CI (Continuous Integration) سرورهای ایرانی بر روی gitlab

اوایل یه سرور داشتم که هنوز آی‌پی ش توسط گوگل تحریم نشده بود و طبیعتا راحت با gitlab کار می‌کردیم.

بعد از چند وقت، آی پی ما هم تحریم شد. CI دستی! مسخره بود واقعا… یا باید از پروکسی استفاده می‌کردیم، یا ssh tunnel یا راه حل سوم که من انتخاب کردم: gitlab runner اختصاصی!

همونطور که می‌دونید برای راه اندازی CI روی gitlab باید یه runner داشته باشید که دستورات داخل .gitlab-ci.yml رو براتون اجرا کنه. خود گیت لب runnerهای اشتراکی داره ولی محدود…
اول با ssh tunnel از یه سرور خارجی موفق به استفاده CI و دورزدن تحریم شدم. خب بدی این راه حل این بود که یه task روی خط فرمان باید اجرا می‌موند و  ارتباط تونل با بستن ارتباط ssh از کار می‌افتاد و اگر ارائه‌دهنده سرور مجازی ارتباط vnc بهت می‌داد اونجا هم نمی‌تونستی از محیط کاربری exit کنی و به هر دلیلی هر کسی من جمله همون فروشنده سرور مجازی vnc رو باز می‌کرد به تمام سرور دسترسی داشت. مگر اینکه به حالت یک demand این تونل رو ایجاد می‌کردم که باز هم راضی کننده نبود و ظاهر خوبی برام نداشت.
ولی وقتی فهمیدم shared runner های گیت‌لب جواب‌گو نیست این ایده تو ذهنم اومده که روی همون سرور مجازی خارج از کشور می‌تونم یه runner ثبت کنم و از اونجا که این runner دیگه تحت کنترل خودم بود به راحتی به هر سروری من جمله سرورهای ایران دسترسی داشت.
هر چند راه حل دورزدن تحریم از سمت ایران یک طرفه بود این راه حل که به خرجش می‌ارزه هم برای طرف دیگه نوشتم تا هر کس مشکلی مثل من داشت بتونه استفاده کنه. هر سوال یا کمکی خواستید تو کامنت ها در خدمتم…

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دوازده − سه =