فتح CI/CD: كيفية تثبيت جنكينز بنجاح على أوبونتو

هل تقضي الكثير من الوقت في نشر الشيفرة في بنيتك التحتية مع العديد من الخطوات والبرمجيات؟ لا داعي للقلق، أنت في المكان الصحيح لتعلم كيفية تثبيت jenkins، أحد أدوات الشفرة المفتوحة الأكثر استخدامًا.

في هذا البرنامج التعليمي، ستتعلم كيفية تثبيت jenkins على جهاز ubuntu، حتى تتمكن من بناء ونشر الشيفرة بنقرة زر.

استمر في القراءة وابدأ في التثبيت!

المتطلبات الأساسية

سيكون هذا المنشور برنامجًا تعليميًا خطوة بخطوة. لمتابعة الخطوات، تأكد من أن لديك جهاز ubuntu. يستخدم هذا البرنامج التعليمي ubuntu 18.04 مع تثبيت apache.

تثبيت الإصدار 11 من java على جهاز ubuntu

Jenkins هو أداة للـ Continuous Integration (CI) و Continuous Deployment (CD)، يمكنك تشغيلها في حاويات servlet مختلفة مثل Apache Tomcat أو Glassfish. ولكن لهذا العرض التوضيحي، ستقوم بتشغيل Jenkins على خادم حاويات servlet المدمج في Java الخاص به.

هناك عدة تنفيذات للجافا يمكنك استخدامها مع Jenkins، ولكن OpenJDK هو الأكثر شيوعًا، والذي ستقوم بتثبيته واستخدامه في هذا البرنامج التعليمي.

1. قم بتسجيل الدخول إلى جهاز Ubuntu الخاص بك باستخدام عميل SSH المفضل لديك.

2. بعد ذلك، قم بتشغيل الأوامر التالية لإنشاء دليل باسم ~/install_jenkins_demo والتبديل إلى ذلك الدليل.

mkdir ~/install_jenkins_demo
cd ~/install_jenkins_demo

3. قم بتشغيل الأمر apt install أدناه لتثبيت Java على جهازك.

# تثبيت نسخة جافا: Java SE 11 (LTS)
sudo apt install default-jdk 
Installing Java Version: Java SE 11 (LTS)

4. في النهاية، قم بتشغيل الأمر أدناه للتحقق من إصدار الجافا المثبت على جهازك. من خلال ذلك، يتم التأكد من أنك قمت بتثبيت الجافا بنجاح.

# التحقق من إصدار الجافا للتحقق من تثبيت الجافا.
java -version
Checking the Version of Java to verify Java installation

تثبيت جنكينز على مثيل Ubuntu 18.04 LTS

الآن بعد أن قمت بتثبيت الجافا على جهاز Ubuntu، حان الوقت لتثبيت جنكينز على جهازك. تثبيت جنكينز مشابه تمامًا لكيفية تثبيت حزم أخرى على جهازك.

من المفترض أنك ما زلت مسجلاً في عميل SSH:

1. أولاً، قم بتشغيل الأمر apt update لتحديث حزم النظام الخاصة بك.

sudo apt update

2. بعد ذلك، قم بتشغيل الأمر wget أدناه لإضافة المفتاح العام لجنكينز إلى نظامك.

إضافة المفتاح العام يسمح لموقع جنكينز بتنزيل مستودع جنكينز الرسمي أو أي حزم مطلوبة.

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

3. قم بتشغيل الأوامر التالية لإضافة مستودع جنكينز الرسمي إلى نظامك وتحديث نظامك.

# إضافة مستودع جنكينز الرسمي إلى النظام
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \
    /etc/apt/sources.list.d/jenkins.list'
# تحديث الحزمة
sudo apt-get update

4. الآن، قم بتشغيل الأمر أدناه لـ تثبيت حزمة Jenkins.

# تثبيت حزمة جنكينز
sudo apt-get install Jenkins
Installing the Jenkins package on an ubuntu machine

5. أخيرًا، قم بتشغيل أمر service أدناه للتحقق من حالة خدمة Jenkins. # التحقق من خدمة Jenkins على جهاز ubuntu service jenkins status

# التحقق من خدمة Jenkins على جهاز ubuntu
service jenkins status

كما يمكنك رؤية أدناه، تظهر الحالة أن خدمة Jenkins هي نشطة.

Verifying the status of Jenkins service

تكوين نسخة Jenkins

في الوقت الحالي، أنت في منتصف عملية تثبيت Jenkins بنجاح. ولكن، قبل أن تبدأ فعلا في استخدامه، تحتاج إلى تكوينه مع وسائل أساسية. كيف؟ الخطوة الأولى في تكوين Jenkins هي فتح Jenkins الذي تم تثبيته حديثًا.

في افتراض أنك لا تزال مسجل الدخول إلى عميل SSH:

1. افتح متصفحك المفضل وانتقل إلى عنوان IP للخادم تتبعها المنفذ 8080 مثل jenkins-ip:8080. بعد التنقل إلى الرابط، ستحتاج إلى فتح Jenkins عن طريق تقديم كلمة المرور الإدارية. تُخزن كلمة المرور الإدارية في الدليل /var/lib/jenkins/secrets/initialAdminPassword على الخادم (الخطوة الثانية).

Unlocking Jenkins Instance

2. قم بتشغيل أمر cat أدناه لإضافة كلمة المرور الإدارية على جهازك من الدليل /var/lib/jenkins/secrets/initialAdminPassword.

cat /var/lib/jenkins/secrets/initialAdminPassword

كما يمكنك رؤية أدناه، السلسلة الكبيرة في الإخراج هي كلمة المرور الإدارية. لاحظ كلمة المرور الإدارية لأنك ستحتاج إليها لفتح Jenkins (الخطوة الثالثة).

Checking the Initial Admin Password

3. انتقل مرة أخرى إلى متصفح الويب الخاص بك (فتح Jenkins الصفحة) وأدخل كلمة المرور الإدارية التي لاحظتها في الخطوة الثانية.

بمجرد أن تقوم بفتح Jenkins، يتم توجيه متصفحك إلى صفحة حيث ستقوم بتخصيص مثيل Jenkins الخاص بك باستخدام الإضافات (الخطوة الرابعة).

٤. في الصفحة تخصيص Jenkins، انقر على الخيار تثبيت الإضافات المقترحة.

الإضافة الخاصة بـ Jenkins هي أداة من طرف ثالث تتكامل مع Jenkins وتسمح لك بأداء المهام مثل إضافة Git. تسمح لك إضافة Git بالاتصال بمستودع Git وتشغيل أوامر Git، وما إلى ذلك.

Installing the Jenkins Plugin

٥. قم بملء تفاصيل مستخدم الإدارة، كما هو موضح أدناه، وانقر فوق حفظ ومتابعة لإنشاء مستخدم الإدارة. يمكنك استخدام مستخدم الإدارة هذا للعمل مع لوحة تحكم واجهة المستخدم لـ Jenkins أو مثيل Jenkins.

بمجرد النقر فوق حفظ ومتابعة، ستحصل على شاشة تكوين المثيل المعروضة في الخطوة الخامسة.

بشكل افتراضي، يحتوي Jenkins على مستخدم إدارة مُنشأ بالفعل بمعرف المستخدم/كلمة المرور (admin: admin) لكنه لا يزال يوفر لك خيارًا لإنشاء مستخدم إدارة حسب اختيارك. يمكنك تخطي هذا الخطوة والاستمرار كمسؤول إذا لم تكن ترغب في إنشاء مستخدم إدارة مخصص.

Creating the First Admin user

٦. في النهاية، انقر فوق حفظ وإنهاء لحفظ تكوين المثيل.

يتيح لك تكوين المثيل تحديد عنوان URL لـ Jenkins الذي ترغب في استخدامه، وفي هذه الحالة، ستستخدم العنوان URL الافتراضي (أي، server-ip:8080)

Configuring the Jenkins Instance
Jenkins Running successfully on Port 8080

تغيير منفذ Jenkins الافتراضي للمثيل.

سبق لك أن علمت أن Jenkins يعمل بشكل افتراضي على المنفذ 8080، وهذا جيد. ولكن ماذا لو كنت بحاجة إلى تشغيل بعض التطبيقات الأخرى على نفس المنفذ مثل Apache أو NGINX؟ لا تقلق! يمكنك تغيير المنفذ الافتراضي لـ Jenkins (8080) وتشغيل نسخة Jenkins على منافذ أخرى.

1. افتح الملف /etc/default/Jenkins في محرر النص الخاص بك المفضل وقم بتغيير المنفذ الافتراضي من 8080 إلى 9090 واحفظ التغييرات.

Changing the Default Jenkins Port

2. بعد ذلك، قم بتشغيل الأمر أدناه لإعادة تشغيل Jenkins، بحيث تأخذ التكوينات المحدثة مفعلة.

sudo systemctl restart jenkins

3. في النهاية، انتقل إلى عنوان URL الخاص بـ Jenkins، ولكن هذه المرة، قم بتغيير المنفذ إلى 9090، كما هو موضح أدناه.

Jenkins Running successfully on Port 9090

تشغيل Jenkins بشكل آمن (HTTPS) باستخدام شهادة SSL

الآن، نسخة Jenkins الخاصة بك تعمل بشكل مثالي على المنفذ 9090. ولكن هل هو آمن؟ لا، ليس كذلك. قم بتأمين نسخة Jenkins الخاصة بك وتجنب أن تتعرض للاختراق من قبل المهاجمين عن طريق تمكين شهادة SSL.

تُستخدم شهادات SSL بشكل رئيسي للاختبار في الجهاز المحلي عندما لا تكون هناك شهادة متاحة من سلطة الشهادة الخارجية.

لتأمين نسخة Jenkins الخاصة بك:

1. قم بتشغيل كل أمر أدناه لإنشاء دليل يسمى ~/certificates لتخزين الشهادات وتغيير إلى هذا الدليل.

mkdir ~/certificates
cd ~/certificates

2. بعد ذلك، قم بتشغيل الأمر التالي لتوليد طلب توقيع شهادة (CSR) ومفتاح خاص.

openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
Generating a CSR and private key

3. قم بتشغيل الأوامر التالية لإنشاء دليل آخر (/etc/apache2/ssl) ونقل الشهادات من دليل ~/certificates/ إلى دليل /etc/apache2/ssl.

mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.

4. افتح ملف تكوين موقع Apache SSL الافتراضي (/etc/apache2/sites-available/default-ssl.conf) وأضف الأسطر أدناه. تأكد من استبدال بالاسم الفعلي لخادمك.

في الكود أدناه، يمكنك تحديد موقع مفتاح الشهادة والملف حيث نسخت سابقًا شهادات SSL. أيضًا، لتوجيه Jenkins على منفذ 9090، ستضيف معامل ProxyPass وتقوم بتشغيل ProxyPreserveHost.

ServerName <my-server-name>
SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/
Updating default SSL Apache site configuration file

5. الآن قم بتشغيل كل أمر أدناه لتمكين وحدة SSL، وتمكين الموقع الذي قمت بتعديله (الخطوة الرابعة)، وإعادة تشغيل خدمة Apache.

# قم بتمكين وحدة SSL لتتمكن من العمل مع اتصالات SSL.
sudo a2enmod ssl proxy proxy_http proxy_balancer
# قم بتمكين الموقع الذي قمت بتعديله (الخطوة الرابعة)
sudo a2ensite default-ssl.conf
# أعد تشغيل خدمة Apache
sudo service apache2 restart

6. في النهاية، انتقل إلى مثيل جنكينز الخاص بك، ولكن هذه المرة، باستخدام HTTPS، كما هو موضح أدناه.

كما يمكنك رؤية، يتم فتح جنكينز بنجاح باستخدام اتصالات SSL على منفذ HTTPS. لا تقلق إذا رأيت رمز تحذير يعرض الرسالة غير آمن. ستحصل على تحذير لأنك تستخدم شهادة ذاتية التوقيع (التي أنشأتها) وليست من قبل سلطة الشهادات.

Accessing Jenkins Instance with SSL connections on HTTPS port

الاستنتاج

في هذا البرنامج التعليمي، تعلمت كيفية تثبيت جنكينز على جهاز أوبونتو، والتحقق من أنه يمكنك الوصول إلى مثيل جنكينز بشكل آمن.

الآن، كيف تخطط لتطوير مهاراتك باستخدام جنكينز؟ هل ربما ترغب في أتمتة نشر الويب؟ أم إنشاء أنبوب تسليم مستمر وتكامل مستمر باستخدام جنكينز لتحسين عملية تطوير البرمجيات؟

Source:
https://adamtheautomator.com/install-jenkins/