امین کشاورز
امین کشاورز
خواندن ۳ دقیقه·۶ سال پیش

آموزش Gitlab CI/CD برای سرور های ایران - قسمت اول

سلام.

قبلا یه پست راجب دیپلوی کردن استاتیک سایتا مثل سایتایی که با React JS یا VueJs درست شده نوشته بودم که شما میتونید اینجا بخونیدش:

https://virgool.io/@aminkt/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%BE%D8%B1%D9%88%DA%98%D9%87-vuejs-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-ssh-%D9%88-gitlab-%D8%A8%D8%B1-%D8%B1%D9%88%DB%8C-%D8%B3%D8%B1%D9%88%D8%B1-deploy-%DA%A9%D9%86%DB%8C%D9%85-f0vr9ancpbhh

اخیرا به شدت درگیر بودم تا هم یه سری پروژه های VUEJS و هم یه بک اند PHP رو٬ روی سرور های ایران دیپلوی کنم و همینطور که میدونید گیت لب ایران رو تحریم کرده و نمیتونه آی پی های ما رو ببینه.

تو سری پست های آتی تمام تجربمو براتون به اشتراک میزارم.

توجه کنید که اگه سرور هاتون تو ایران نیست باز این پستا توضیح میده که چطوری این کارو انجام بدید پس دنبالش کنید و اگه دوست داشتید منو فالو کنید.

(اگه دوست داشتید و وقت پیاده سازی رو خودتون نداشتید میتونید به تلگرام من که تو بیو هست پیام بدید که با توافقاتی اوکی کنم براتون)



خوب بریم سر اصل مطب.

فرض کنید ما یک یا چند سرور تو ایران داریم و میخواهیم پروژه خود را روی آن دیپلوی کنیم.

۱- چگونه فایل های استاتیک را مثل پروژه های React Js یا VueJs را در سرور ایران دیپلوی کنیم؟ (قسمت دوم)

https://virgool.io/@aminkt/%D8%AF%DB%8C%D9%BE%D9%84%D9%88%DB%8C-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7%DB%8C-reactjs-%DB%8C%D8%A7-vuejs-%D8%A8%D8%B1-%D8%B1%D9%88%DB%8C-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-gitlab-cicd-c9qy3dq9exws


۲- چگونه بک اند خود را روی سرور ایران دیپلوی کنیم؟

ما خیلی ساده میخوایم کارای بالا رو انجام بدیم. توضیحات هر کدوم رو به تفصیل تو پست های جداگانه میدم و میگم که چطوری باید انجام بشه و این جا پیش نیاز ها رو مطرح میکنم.

برای شروع به چه چیزی نیاز دارم؟

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

من از یه سرور خیلی ارزون تو کانادا استفاده کردم.

پس اگه سرور شما تو ایرانه به یه سرور خ سبک تو خارج نیاز دارید و اگه هم تو ایران نیست که خیلی کارتون ساده میشه.


اصلا GITLAB CI/CD چی هست؟

یه ابزاری هست تو خود گیت لب و رایگان که به شما کمک میکنه تا پروژتون رو به صورت اتوماتیک تست کنید و اونو روی سرور اصلی یا سرور تست دیپلوی کنید.

چرا باید ازش استفاده کنیم؟

خیلی سادس. باعث میشه کاراتون تمیز تر٬ حرفه ای تر٬ ایمن تر و سریع تر بشه و چون دخالت انسانی دیگه تو دیپلوی یا تست نیست مطمئن میشوید همه چی تو روال رفته جلو.

برای مثال من روی یه برنچم پوش میکنم. بعد مرج ریکوست میدم رو مستر. گیت لب خودش شروع میکنه به اجرا کردن تست ها و نتیجه پوش شما رو نشون میده که آیا این تغییرات سیستم شما رو بهم ریخته یا نه.

 نمایی از مرج ریکوست گیت لب و ران شدن تست ها قبل و بعد از مرج
نمایی از مرج ریکوست گیت لب و ران شدن تست ها قبل و بعد از مرج

همین طور که تو عکس بالا میبینید٬ من مرج ریکوست دادم٬ قبل اکسپت کردن وضعیت تست ها رو نشون داد که موفق بود و بعد از اعمال تغییرات رو برنچ مقصد هم همه چی اوکی بود.

گزارش و وضعیت دیپلوی ها
گزارش و وضعیت دیپلوی ها

تو منوی سمت چپتون شما میتونید وارد صفحه Pipeline بشید. تو این صفحه نشون میده که وضیعت CI/CD های گذشته شما چطور پیش رفته.

وضعیت Job ها در یک Pipeline
وضعیت Job ها در یک Pipeline

بذارید یکم توضیح بدم جاب چیه و پایپ لاین چیه.

هر اجرای CI/CD یک پایپ لاینه به معنی خط لوله. یعنی وقتی کار یه جا گیر کنه بقیش اجرا نمیشه. و از چند stage یا مرحله تشکیل شده.

تو هر استیج ما یک یا بیشتر جاب داریم. جاب درواقع هر اکشن سیستم هست. مثلا جاب تست. جاب بیلد یا جاب دیپلوی.

پیش نمایش اجرای جاب تست
پیش نمایش اجرای جاب تست

تو تصویر بالا شما اجرای جاب رو میبینید و ترمینال مربوط بهش که نتیجه رو کامل نشون میده.


بقیه مطلب رو تو پست های خودش توضیح میدم که خسته نشید و فقط قسمتی که لازم دارید رو بخونید.

(اگه دوست داشتید و وقت پیاده سازی رو خودتون نداشتید میتونید به تلگرام من که تو بیو هست پیام بدید که با توافقاتی اوکی کنم براتون)


مچکرم


deploygitlab ci cdدیپلویسرور ایرانdevops
چپتر لید و با حفظ سمت تیم لید اسنپ فود. اکس تک لید دیجی کالا. پروداکت اونر اسبق بیمه بازار و معمار نرم افزار :)). برای اطلاعات بیشتر به لینکدینم مراجعه کنید: https://www.linkedin.com/in/aminkt/
شاید از این پست‌ها خوشتان بیاید