راه اندازی Gitlab-Runner روی سرور لینوکسی

یکی از کارهایی که توی دوآپس انجام میشه، اتوماتیک کردن کارهاست. و یکی از زیرشاخه های این مبحث هم Gitlab-ci هست. درمورد این موضوع لینک زیر رو بخونین:

https://docs.gitlab.com/ee/ci/

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

مرحله اول: نصب Gitlab-Runner

اگر توی گوگل سرچ کنیم: gitlab runner، لینک های اولی مربوط به خود گیتلب هستن. پس چنتاشو باز می‌کنیم. اصل کاری که در مورد نسخه ی لینوکسی گفته این لینکه:

https://docs.gitlab.com/runner/install/linux-manually.html

البته من ترجیح میدم که manually و با نسخه باینری نصب کنم. البته اینکه باید با فیلترچیزکن بگیرمش هم بی‌تاثیر نیست.

نکته: از DNS های شکن میتونین برای این کار استفاده کنین. سرعتش کمه ولی کار راه میفته و میشه دانلودش کرد.

توی بخش Using binary file میگه با توجه به معماری سیستمت، یکی از اسکریپتای زیر رو کپی و توی سیستمت اجرا کن. که خب مثلا مال من x86-64 هست و این دستور رو برمیدارم:

curl -L --output /usr/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64"

بعد از دانلود هم باید git رو نصب کنیم:

sudo apt update
sudo apt install git

تا اینجا ما فایل رو دانلود کردیم و در مسیرزیر گذاشتیم:

/usr/bin/gitlab-runner

خب. در ادامه پرمیشن مورد نیازشو بهش میدیم که بتونه اجرا بشه (دقت کنین که من اینا رو با دسترسی root دارم انجام میدم):

chmod +x /usr/bin/gitlab-runner

بعدش هم باید برای gitlab-ci یه یوزر بسازیم:

useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

باید سرویس رو حالا install و start کنیم:

gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
gitlab-runner start

برای اینکه چک کنیم ببینیم وضعیتش چجوریه، از دستور زیر میشه استفاده کرد:

gitlab-runner status
انتهای نصب

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

به لینک زیر برین و شروع کنین دستورات رو اجرا کردن. ولی منم توضیح میدم:

https://docs.gitlab.com/runner/register/index.html

توی بخش لینوکسش گفته:

توضیحات خود گیتلب درمورد رجیستر کردن روی لینوکس

میگه اول باید این کامند رو بزنین:

gitlab-runner register

از شما آدرس گیتلب رو میخواد. مثلا اگر گیتلب شما سابدامینی از دامین اصلی شرکت هست و اینطوریه، همینطوری بزنین:

https://gitlab.sherkat.ir

از شما یه توکن هم میخواد که باید برید توی بخش زیر پیداش کنین:

توی ریپوزیتوری برید به بخش Settings > CI/CD و در بخش Runners روی Expand کلیک کنین. سمت چپ صفحه نوشته Specific runners که هم آدرس رو به شما میده و هم توکن:

Settings – CI/CD – SpecificRunners

توکن رو کپی کنین و به برنامه بدین.

از شما یه توضیحات میخواد که بعدا میتونین توی خود نرم افزار عوضش کنین.

یک یا چنتا تگ هم باید بهش اختصاص بدین.

کار این تگ چیه؟ در صورتی که رانر شما بعدا share بشه، توی فایل gitlab-ci.yml‌ مشخص میکنین که کدوم رانر باید اینو اجرا کنه و اینطوری تداخل پیش نمیاد. هر رانر، جابی رو اجرا میکنه که براش مشخص شده. نه اینکه همه ی جاب ها بیان سمت یه رانر و رانر های دیگه بیکار باشن.

بعدش نیاز به مشخص کردن runner-executor دارین. کارش اینه که جاب های شما رو اجرا کنه. انواع مختلفی داره. از داکر و کوبرنیتیز بگیرید تا ssh و شل. وقتی داکر باشه، ایمیج موردنظر شما رو (که توی جاب مشخص کردین) اجرا و دستورات رو داخل اون اجرا میکنه. شل هم توی همین سیستم اجرا میکنه دستورات شما رو.

و نتیجه نهایی:

اتمام کار گیتلب رانر

نکته: اگر قبلش گیتلب رانر رو استارت کرده بودین، نیازه که ری‌استارت بشه:

gitlab-runner restart

حالا اگر برگردین به صفحه ی Settings>CI/CD>Runners>Specific Runners (داخل ریپوزیتوری مربوطه)، رانر جدید رو میبینین:

Settings>CI/CD>Runners>Specific Runners

و تمام 🙂

  • سوال: میشه روی یه رانر، دوتا کانفیگ باشه؟
  • جواب: بله. تعداد بیشتر هم میشه. مثلا یه shell executor و یه docker executor روی یه رانر باشن و این نکته رو رعایت کنین که تگ ها رو درست بدین.