كيفية تثبيت وتكوين GitLab على Ubuntu

0 الأسهم
0
0
0
0

مقدمة

GitLab هو تطبيق مفتوح المصدر يُستخدم بشكل أساسي لاستضافة مستودعات Git، مع ميزات إضافية متعلقة بالتطوير، مثل تتبع المشكلات. صُمم GitLab ليتم استضافته باستخدام بنيته التحتية الخاصة، مما يوفر مرونة النشر كمستودع داخلي لفريق التطوير، أو كطريقة عامة للتواصل مع المستخدمين، أو كأداة للمساهمين لاستضافة مشاريعهم الخاصة.

يتيح لك مشروع GitLab إنشاء نسخة GitLab واحدة على الأقل على جهازك باستخدام آلية تثبيت. سيُعلّمك هذا الدليل كيفية تثبيت وتكوين GitLab Community Edition على خادم Ubuntu.

المتطلبات الأساسية
  • خادم يعمل بنظام Ubuntu، مع مستخدم غير جذر يتمتع بامتيازات سودو و جدار الحماية نشط.
  • 4 نوى لوحدة المعالجة المركزية الخاصة بك
  • 4 جيجا بايت من ذاكرة الوصول العشوائي (RAM)
  • اسم المجال الذي يشير إلى الخادم الخاص بك

الخطوة 1 – تثبيت التبعيات

قبل تثبيت GitLab، من المهم تثبيت البرنامج الذي سيتم استخدامه أثناء التثبيت وبشكل مستمر. يمكن تثبيت البرنامج المطلوب من مستودعات حزم Ubuntu الافتراضية.

أولاً، قم بتحديث قائمة الحزم المحلية:

sudo apt update

ثم قم بتثبيت التبعيات عن طريق إدخال هذا الأمر:

sudo apt install ca-certificates curl openssh-server postfix tzdata perl

من المحتمل أن يكون لديك بعض هذه البرامج مثبتًا بالفعل. لتثبيت Postfix، حدد "موقع الإنترنت" عند ظهور رسالة الخطأ. في الصفحة التالية، أدخل اسم نطاق خادمك لتكوين كيفية إرسال النظام للبريد.

الآن بعد أن قمت بتثبيت التبعيات، فأنت جاهز لتثبيت GitLab.

الخطوة 2 – تثبيت GitLab

رغم التبعيات، يمكنك تثبيت GitLab. تستخدم هذه العملية نصًا برمجيًا للتثبيت لتكوين نظامك باستخدام مستودعات GitLab.

أولاً، أدخل المجلد /tmp:

cd /tmp

ثم قم بتنزيل البرنامج النصي للتثبيت:

curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

لا تتردد في مراجعة البرنامج النصي الذي تم تنزيله للتأكد من ارتياحك لوظيفته. يمكنك أيضًا العثور على نسخة مستضافة من البرنامج النصي في تعليمات تثبيت GitLab:

less /tmp/script.deb.sh

بمجرد التأكد من أن البرنامج النصي آمن، قم بتشغيل برنامج التثبيت:

sudo bash /tmp/script.deb.sh

سيقوم البرنامج النصي بتكوين خادمك لاستخدام مستودعات GitLab المُدارة. سيُمكّنك هذا من إدارة GitLab باستخدام أدوات إدارة الحزم نفسها التي تستخدمها للحزم الأخرى على نظامك. بعد الانتهاء، يُمكنك تثبيت تطبيق GitLab الفعلي باستخدام الأمر apt:

sudo apt install gitlab-ce

سيؤدي هذا إلى تثبيت المكونات الضرورية على نظامك وقد يستغرق بعض الوقت لإكماله.

الخطوة 3 - إعداد قواعد جدار الحماية

قبل تهيئة GitLab، يجب التأكد من أن قواعد جدار الحماية لديك تسمح بحركة مرور الويب. إذا اتبعت الدليل المرفق في المتطلبات الأساسية، فسيكون جدار حماية ufw مُفعّلاً لديك بالفعل.

يمكنك عرض الحالة الحالية لجدار الحماية النشط لديك عن طريق تشغيل الأمر التالي:

sudo ufw status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)

تسمح القواعد الحالية بمرور بيانات SSH، ولكن الوصول إلى الخدمات الأخرى مقيد. بما أن GitLab تطبيق ويب، يجب عليك السماح بالوصول عبر HTTP. بما أنك ستستخدم GitLab لطلب وتفعيل شهادة TLS/SSL مجانية من Let's Encrypt، فاسمح أيضًا بالوصول عبر HTTPS.

بروتوكول تعيين المنافذ لـ HTTP و HTTPS متوفر في ملف /etc/services، لذا يمكنك السماح بهذه الحركة بالاسم. إذا لم تكن قد فعّلت حركة مرور OpenSSH بالفعل، فعليك السماح بها:

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

يمكنك التحقق من حالة ufw مرة أخرى للتأكد من أن لديك حق الوصول إلى هاتين الخدمتين على الأقل:

sudo ufw status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)

يوضح هذا الإخراج أن واجهة الويب GitLab أصبحت الآن قابلة للوصول بعد تكوين التطبيق.

الخطوة 4 - تعديل ملف تكوين GitLab

قبل استخدام التطبيق، عليك تحديث ملف التكوين وتشغيل أمر إعادة التكوين. أولًا، افتح ملف تكوين GitLab باستخدام محرر النصوص المفضل لديك. يستخدم هذا المثال nano:

sudo nano /etc/gitlab/gitlab.rb

ابحث عن سطر تكوين external_url. حدّثه ليتوافق مع نطاقك، وتأكد من تغيير http إلى https لإعادة توجيه المستخدمين تلقائيًا إلى الموقع المحمي بشهادة Let's Encrypt:

...
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! Note: During installation/upgrades, the value of the environment variable
##! EXTERNAL_URL will be used to populate/replace this value.
##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
##! address from AWS. For more details, see:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'https://your_domain'
...

بعد ذلك، ابحث عن إعداد letsencrypt['contact_emails']. إذا كنت تستخدم nano، يمكنك تفعيل استعلام البحث بالضغط على CTRL+W. اكتب letsencrypt['contact_emails'] في سطر الأوامر، ثم اضغط على ENTER. يُحدد هذا الإعداد قائمة بعناوين البريد الإلكتروني التي يمكن لمشروع Let's Encrypt استخدامها للتواصل معك في حال وجود مشكلة في نطاقك. يُنصح بإلغاء التعليق وملء هذا الحقل لتلقي إشعار بأي مشاكل قد تحدث.

letsencrypt['contact_emails'] = ['[email protected]']

بعد إجراء التغييرات، احفظ الملف وأغلقه. إذا كنت تستخدم نانو، يمكنك القيام بذلك بالضغط على CTRL+X، ثم ي وثم يدخل افعلها.

قم بتشغيل الأمر التالي لإعادة تكوين GitLab:

sudo gitlab-ctl reconfigure

سيؤدي هذا إلى تهيئة GitLab باستخدام المعلومات التي يمكنه العثور عليها حول خادمك. هذه عملية آلية بالكامل، لذا لن تحتاج إلى الرد على أي طلبات. ستؤدي هذه العملية أيضًا إلى تكوين شهادة Let's Encrypt لنطاقك.

الخطوة 5 - قم بإجراء التكوين الأولي عبر واجهة الويب

مع تشغيل GitLab، يمكنك إجراء تكوين أولي للتطبيق عبر واجهة الويب.

تسجيل الدخول للمرة الأولى

قم بزيارة اسم نطاق خادم GitLab الخاص بك في متصفح الويب الخاص بك:

https://your_domain

في زيارتك الأولى، سيتم تقديم صفحة تسجيل الدخول لك:


سيقوم GitLab بإنشاء كلمة مرور أولية آمنة لك. سيتم حفظها في مجلد يمكنك الوصول إليه كمستخدم sudo إداري:

sudo nano /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the firs$
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: YOUR_PASSWORD
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

في صفحة تسجيل الدخول، أدخل ما يلي:

  • اسم المستخدم: root
  • كلمة المرور: [كلمة المرور المذكورة في /etc/gitlab/initial_root_password]

أدخل هذه القيم في الحقول وانقر على زر تسجيل الدخول. سيتم تسجيل دخولك إلى التطبيق وسيتم توجيهك إلى صفحة تطلب منك بدء إضافة المشاريع.


الآن يمكنك ضبط مثيل GitLab الخاص بك.

تحديث كلمة المرور الخاصة بك

من أول ما عليك فعله بعد تسجيل الدخول هو تغيير كلمة مرورك. للقيام بذلك، انقر على الرمز في الزاوية العلوية اليمنى من شريط التنقل، ثم اختر "تعديل الملف الشخصي".


سيتم نقلك بعد ذلك إلى صفحة إعدادات المستخدم. في شريط التنقل الأيسر، حدد "كلمة المرور" لتغيير كلمة مرور GitLab المُولّدة إلى كلمة مرور آمنة، ثم انقر على زر "حفظ كلمة المرور" بعد اكتمال التحديث.


ستُعاد إلى صفحة تسجيل الدخول مع إشعار بتغيير كلمة مرورك. أدخل كلمة المرور الجديدة لتسجيل الدخول مجددًا إلى GitLab.


ضبط إعدادات ملفك الشخصي

يختار GitLab بعض الإعدادات الافتراضية المعقولة، ولكنها عادةً لا تكون مناسبة بعد بدء استخدام البرنامج. لإجراء التغييرات اللازمة، انقر على أيقونة المستخدم في الزاوية العلوية اليمنى من شريط التنقل، ثم اختر "تعديل الملف الشخصي".

يمكنك تحديد اسم المستخدم وعنوان البريد الإلكتروني من "المسؤول" و"[email protected]" إلى اسم أكثر تحديدًا. سيُعرض الاسم الذي تختاره للمستخدمين الآخرين، بينما يُستخدم البريد الإلكتروني لتحديد الصورة الرمزية الافتراضية، والإشعارات، وإجراءات Git عبر الواجهة، وغيرها.


بعد اكتمال التحديثات، انقر على زر "تحديث إعدادات الملف الشخصي" في الأسفل. سيُطلب منك إدخال كلمة مرورك لتأكيد التغييرات. سيتم إرسال بريد إلكتروني للتأكيد إلى عنوانك المُدخل. اتبع التعليمات الواردة في البريد الإلكتروني للتحقق من حسابك لتتمكن من استخدامه مع GitLab.

تغيير اسم الحساب

ثم حدد الحساب في شريط التنقل الأيسر:


هنا يمكنك تفعيل المصادقة الثنائية وتغيير اسم المستخدم. افتراضيًا، يُسمى حساب الإدارة الأول root. ولأنه اسم حساب معروف، فمن الأفضل تغييره إلى اسم آخر. ستظل لديك صلاحيات إدارية. الشيء الوحيد الذي سيتغير هو الاسم. استبدل root باسم المستخدم الذي تريده:


انقر على زر "تحديث اسم المستخدم" لإجراء التغيير. سيُطلب منك بعد ذلك تأكيد التغيير. في المرة القادمة التي تسجل فيها دخولك إلى GitLab، تذكر استخدام اسم المستخدم الجديد.

إضافة مفتاح SSH إلى حسابك

يمكنك تفعيل مفاتيح SSH باستخدام Git للتفاعل مع مشاريع GitLab. للقيام بذلك، عليك إضافة مفتاح SSH العام إلى حسابك على GitLab.

في شريط التنقل الأيسر، حدد مفاتيح SSH:


إذا كنت قد قمت بالفعل بإنشاء زوج مفاتيح SSH على جهاز الكمبيوتر المحلي لديك، فيمكنك عرض المفتاح العام عن طريق كتابة ما يلي:

cat ~/.ssh/id_rsa.pub
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

انسخ هذا النص وأدخله في مربع نص المفتاح داخل نسخة GitLab. إذا ظهرت لك رسالة أخرى، فهذا يعني أنك لم تقم بتكوين زوج مفاتيح SSH على جهازك بعد:

Output
cat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

إذا كان الأمر كذلك، فيمكنك إنشاء زوج مفاتيح SSH عن طريق إدخال الأمر التالي:

[environment local]
ssh-keygen

اقبل الإعدادات الافتراضية وقم بشكل اختياري بتوفير كلمة مرور لتأمين المفتاح محليًا:

Output
[environment local]
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| ..%o==B|
| *.E =.|
| . ++= B |
| ooo.o . |
| . S .o . .|
| . + .. . o|
| + .o.o ..|
| o .++o . |
| oo=+ |
+----[SHA256]-----+

بمجرد حصولك على هذا، يمكنك عرض مفتاحك العام كما في المثال السابق عن طريق إدخال هذا الأمر:

cat ~/.ssh/id_rsa.pub
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

خذ هذا النص وألصقه في مربع النص "المفتاح" في نسخة GitLab. أعطِه عنوانًا وصفيًا، ثم انقر على زر "إضافة مفتاح".

يمكنك الآن إدارة مشاريع GitLab ومستودعاتها من جهازك المحلي دون الحاجة إلى تقديم بيانات اعتماد حساب GitLab الخاص بك.

الخطوة 6 - تقييد أو تعطيل التسجيلات العامة

باستخدام إعداداتك الحالية، يُمكن لأي شخص إنشاء حساب عند زيارة صفحة GitLab النموذجية. إذا كنت ترغب في استضافة مشروع عام، فقد يكون هذا هو ما تبحث عنه. مع ذلك، في كثير من الأحيان، يُفضّل إعداد أكثر محدودية.

للبدء، انتقل إلى قسم الإدارة بالنقر فوق قائمة الهامبرغر في شريط التنقل العلوي وحدد "الإدارة" من القائمة المنسدلة:


حدد الإعدادات من شريط التنقل الأيسر:


سيتم نقلك إلى الإعدادات العامة لنسخة GitLab. هنا، يمكنك ضبط عدد من الإعدادات التي تؤثر على كيفية تسجيل المستخدمين الجدد ومستويات وصولهم.

تعطيل التسجيلات

إذا كنت تريد تعطيل التسجيلات بشكل كامل، فانتقل إلى قسم قيود التسجيل واضغط على توسيع لعرض الخيارات.

ثم قم بإلغاء تحديد خيار تمكين التسجيل:


تذكّر النقر على زر "حفظ التغييرات" بعد إجراء التغييرات. تمت الآن إزالة قسم التسجيل من صفحة GitLab الرئيسية.

تقييد التسجيل حسب النطاق

إذا كنت تستخدم GitLab كجزء من مؤسسة توفر عناوين بريد إلكتروني مرتبطة بنطاق، يمكنك تقييد عمليات التسجيل حسب النطاق بدلاً من تعطيلها تمامًا. في قسم "قيود التسجيل"، حدد خانة الاختيار "إرسال رسالة تأكيد عند التسجيل"، مما يسمح للمستخدمين بتسجيل الدخول فقط بعد التحقق من بريدهم الإلكتروني.

بعد ذلك، أضف نطاقك أو نطاقاتك إلى قائمة النطاقات المسموحة للتسجيل، نطاق واحد في كل سطر. يمكنك استخدام علامة النجمة "*" لتحديد نطاقات بديلة:


عند الانتهاء، انقر على زر "حفظ التغييرات". سيتم الآن إزالة قسم التسجيل من صفحة GitLab الرئيسية.

تقييد إنشاء المشروع

افتراضيًا، يمكن للمستخدمين الجدد إنشاء ما يصل إلى ١٠ مشاريع. إذا كنت ترغب في السماح للمستخدمين الجدد من خارج المؤسسة بالعرض والمساهمة، ولكنك ترغب في تقييد وصولهم لإنشاء مشاريع جديدة، يمكنك القيام بذلك في قسم "إعدادات الحساب والقيود".

بالداخل، يمكنك تغيير حد المشروع الافتراضي إلى 0 لتعطيل المستخدمين الجدد تمامًا من إنشاء المشاريع:


لا يزال بإمكانك إضافة مستخدمين جدد إلى المشاريع يدويًا والوصول إلى المشاريع الداخلية أو العامة التي أنشأها مستخدمون آخرون. بعد التحديث، تذكّر النقر على زر "حفظ التغييرات". يمكن للمستخدمين الجدد الآن إنشاء حسابات، ولكن لن يتمكنوا من إنشاء مشاريع.

تجديد شهادات Let's Encrypt

افتراضيًا، لدى GitLab مهمة مجدولة مُعدّة لتجديد شهادات Let's Encrypt بعد منتصف الليل كل أربعة أيام، في الدقيقة المحددة بناءً على عنوان URL الخارجي. يمكنك تغيير هذا الإعداد في ملف /etc/gitlab/gitlab.rb.

على سبيل المثال، إذا كنت ترغب في التجديد كل يوم سابع الساعة ١٢:٣٠، يمكنك ضبطه للقيام بذلك. أولاً، انتقل إلى ملف التكوين:

sudo nano /etc/gitlab/gitlab.rb

ثم ابحث عن الأسطر التالية في الملف واحذف # وقم بالتحديث بما يلي:

...
################################################################################
# Let's Encrypt integration
################################################################################
# letsencrypt['enable'] = nil
letsencrypt['contact_emails'] = ['sammy@digitalocean'] # This should be an array of email addresses to add as contacts
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# See http://docs.gitlab.com/omnibus/settings/ssl.html#automatic-renewal for more on these settings
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"
...

يمكنك أيضًا تعطيل التجديد التلقائي عن طريق تعيين letsencrypt['auto_renew'] إلى false:

...
letsencrypt['auto_renew'] = false
...

مع التجديد التلقائي، لا داعي للقلق بشأن انقطاع الخدمة.

نتيجة

لديك الآن نسخة GitLab مُستضافة على خادمك. يمكنك البدء باستيراد أو إنشاء مشاريع جديدة وتكوين مستويات الوصول المناسبة للفريق. يُضيف GitLab باستمرار ميزات وتحديثات إلى منصته، لذا تأكد من زيارة الصفحة الرئيسية للمشروع للبقاء على اطلاع دائم بأي تطورات أو إعلانات مهمة.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

قد يعجبك أيضاً