Gitlab

Gitlab

یکی از مشکلات مطرح و مرسوم در روند توسعه و نگهداری یک محصول نرم‌افزاری، نحوه مدیریت و نگهداری کد‌ها است.
یکی از موثرترین ابزارهایی که مدت زمان خیلی زیادی است در دسترس توسعه‌دهندگان قرار گرفته، نرم‌افزار git است که با استفاده از آن می‌توان تغییرات کد‌ها را مشاهده و ردگیری کرد و در قالب شاخه‌های متفاوت در دسترس تیم‌های توسعه قرار داد بدون آنکه نگرانی بابت تداخل در کدها و روند توسعه بوجود آید.
در گذر زمان پلتفرم‌های زیادی مبتی بر git در بازار عرضه شدند که با ارائه ویژگی‌های جدید و ظاهر گرافیکی دسترسی پذیری این ابزار مهم و کاربردی را افزایش دادند، مانند Github، Gitlab، Bitbucket و ....

Gitlab

یکی از کاربردی‌ترین و معروف‌ترین این پلتفرم‌ها که به کاربران اجازه می‌دهد چه به صورت On premise و چه به صورت Commercial از این محصول استفاده کنند Gitlab است که در سراسر جهان طرفداران زیادی را جذب کرده است.

سرویس Gitlab یک پلتفرم برای مدیریت مخازن کد، استقرار و مانیتورینگ محصول، مدیریت تیم و ... است که با استفاده از زبان Ruby نوشته شده و در ادامه بخش‌هایی از آن نیز با استفاده از زبان محبوب Go توسعه یافت.

نصب و راه‌اندازی Gitlab

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

کانفیگنوعپیش‌فرضتوضیح
service_namestringgitlabنامی که برای سرویس مایلید در نظر گرفته شود
volume_namestringنام volumeای که به سرویس وصل می شود
external_urlstringآدرس دلخواهی که برای مخازن ایجاد شده در سرویس گیتلب ساخته می‌شود
volume_browser_enabledbooleanfalseآیا سرویس مدیریت Dedicated Volume برای این سرویس ساخته شود یا خیر

دامنه مخازن و سرویس

در صورتی که شما برای سرویس خود دامنه‌ای انتخاب نکنید، سکو دامنه پیشفرضی با فرمت زیر برای سرویس شما ایجاد می‌کند که همین آدرس برای دسترسی به مخازن )Repositories( استفاده می‌شود.

SERVICE_NAME-NAMESPAC.fandogh.cloud

در صورتی که قصد دارید سرویس شما بر روی آدرس دیگری اجرا شود، می‌توانید یک دامنه دلخواه به سرویس ‌Gitlab اضافه نمایید تا آدرس مخازن هم با همین دامنه شروع شوند.

توجه

شما تنها می‌توانید از دامنه‌های استفاده کنید که در سکوی ابری فندق اضافه شده و به سرویس Gitlab متصل شده باشند، در غیر این صورت با خطای سروری مواجه خواهید شد.

مهم

توجه داشته باشید حداقل میزان رمی که باید به سرویس ‌Gitlab تخصیص داده شود، طبق مستندات و راهکارهای سایت Gitlab حداقل ۳ گیگابایت )3072Mi( است که برای کار در تیم‌ها و محصولات خیلی کوچک کاربردی است و اگر محصول شما مقیاس بالایی دارد و تیم بزرگی دارید، بهتر است رم بیشتری را به این سرویس اختصاص دهید.

مهم

سرویس Gitlab برای آنکه بتواند تنظیمات و داده‌های خود را ذخیره کند، حتما باید به یک Dedicated Volume متصل باشد و با توجه به مصرف این سرویس، توصیه می‌شود حداقل میزان فضایی که به این سرویس تخصیص داده می‌شود بالای ۱۵ گیگابایت فضای خالی داشته باشد.

توجه

توجه داشته باشید برای استفاده از قابلیت Volume Browser سرویس شما باید به یک Dedicated Volume متصل باشد؛ در غیر این صورت با خطای سرور مواجه خواهید شد.

برای دیپلوی کردن یک سرویس Gitlab می‌توانیم به شکل زیر عمل کنیم:

fandogh managed-service deploy gitlab latest \
-c service_name=test-gitlab \
-c volume_name=VOLUME_NAME \
-m 3072Mi

این دستور یک سرویس Gitlab ایجاد می‌کند که:

  • نام آن test-gitlab ) یعنی در شبکه داخلی فضانام شما، باقی سرویس‌ها از طریق نام test-gitlab و بر روی پورت 80 می‌توانند به آن متصل شوند( است.
  • میزان رم آن 3072 مگابایت.
  • و نام volume که داده‌های Gitlab بر روی آن ذخیره می‌شود VOLUME_NAME است.

بعد از آن که سرویس Gitlab ساخته شد، از طریق لینکی که در اختیار شما قرار می‌گیرد می‌توانید وارد سایت شوید.

توجه

توجه داشته باشید سرویس Gitlab به دلیل Boot Time بالایی که دارد ممکن است تا ۲ دقیقه زمان اولیه نیاز باشد تا آدرس سایت به درستی کار کند.

ایجاد حساب کاربری root

بعد از آنکه سرویس Gitlab به درستی اجرا شد و توانستید از طریق آدرسی که سکوی ابری فندق به شما داده است وارد سایت شوید، اولین بخشی که مشاهده خواهید کرد صفحه ایجاد رمز عبور برای حساب root است. Gitlab Startup Page همانطور که در تصویر بالا مشاهده می‌کنید، در این صفحه Gitlab از شما می‌خواهد تا رمز عبور جدیدی را ایجاد کنید.

هشدار

در انتخاب رمز عبور حتما موارد امنیتی را رعایت کنید و رمزی حداقل با طول ۱۶ کاراکتر شامل سمبل‌ها،اعداد و حروف بزرگ و کوچک انتخاب کنید؛ چرا که این حساب مربوط به root است و در صورت سو استفاده می‌تواند باعث پیشامد فاجعه شود.

دسترسی به مخازن

برای دسترسی به مخازنی که بر روی Gitlab ایجاد می‌کنید دو راه وجود دارد:

  • ssh
  • http سرویس مدیریت شده Gitlab بر روی سکوی ابری فندق از دسترسی ssh پشتیبانی نمی‌کند؛ از همین رو باید با استفاده از لینک http که در اختیار شما قرار داده می‌شود پروژه خود را clone کرده و یا دیگر عملیات git را بر روی آن انجام دهید.

افزودن دامنه دلخواه

اگر قصد داشته باشید دامنه یا دامنه‌های دلخواهتان را به سرویس مدیریت شده مورد نظر متصل نمایید، از طریق این بخش می‌توانید لیست این دامنه‌ها را مشخص کنید.
برای مثال فرض کنید تمایل دارید سرویس مدیریت شده مورد نظر شما روی domain.com و www.domain.com در دسترس باشد:

domains:
- name: domain.com
- name: www.domain.com
...

بدین شکل بخش دامنه را به مانیفست سرویس خود اضافه کرده و آن را مستقر نمایید:

gitlab_deployment.yml
kind: ManagedService
name: test-gitlab
spec:
service_name: gitlab
version: latest
parameters:
- name: volume_name
value: VOLUME_NAME
domains:
- name: domain.com
- name: www.domain.com
resources:
memory: 3072Mi

Deploy Gitlab With Manifest

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

  • مانیفست Gitlab
gitlab_deployment.yml
kind: ManagedService
name: test-gitlab
spec:
service_name: gitlab
version: latest
parameters:
- name: volume_name
value: VOLUME_NAME
resources:
memory: 3072Mi