كيفية تثبيت GoCD وتكوينه على أوبونتو 16.04

GoCD هو نظام تسليم وأتمتة مستمر مفتوح المصدر. يسمح لك بنمذجة سير العمل المعقد باستخدام التنفيذ المتوازي والمتسلسل. تسمح لك خريطة تدفق القيمة الخاصة بها بسهولة تصور سير عمل معقد بسهولة. يتيح لك GoCD مقارنة بنيتين بسهولة ونشر أي إصدار من التطبيق الذي تريده. يتكون النظام البيئي GoCD من خادم GoCD وعامل GoCD. GoCD مسؤولة عن التحكم في كل شيء مثل تشغيل واجهة المستخدم المستندة إلى الويب وإدارة وتوفير الوظائف للوكيل. وكلاء Go مسؤولون عن إدارة الوظائف وعمليات النشر.

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

  • نسخة خادم Vultr Ubuntu 16.04 مع ذاكرة وصول عشوائي سعتها 2 غيغابايت على الأقل.
  • A المستخدم سودو .
  • أشار اسم المجال نحو الخادم.

في هذا البرنامج التعليمي ، سوف نستخدم 192.168.1.1كعنوان IP عام gocd.example.com ولكونه اسم النطاق الموجه نحو مثيل Vultr. يرجى التأكد من استبدال كل تكرارات مثال اسم المجال وعنوان IP بالحدث الفعلي.

قم بتحديث نظامك الأساسي باستخدام الدليل كيفية تحديث Ubuntu 16.04 . بمجرد تحديث نظامك ، تابع تثبيت Java.

قم بتثبيت Java

يتطلب GoCD Java الإصدار 8 ويدعم كل من Oracle Java و OpenJDK. أضف مستودع Ubuntu لـ Oracle Java 8.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

قم بتثبيت Oracle Java.

sudo apt -y install oracle-java8-installer

التحقق من إصدار.

java -version

سترى الناتج التالي.

user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

قم بتعيين المسار الافتراضي لـ Java عن طريق تثبيت الحزمة التالية.

sudo apt -y install oracle-java8-set-default

يمكنك التحقق مما إذا JAVA_HOMEتم تعيينه عن طريق التشغيل.

echo $JAVA_HOME

سوف ترى.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

إذا كنت لا ترى أي إخراج على الإطلاق ، فستحتاج إلى تسجيل الخروج من shell الحالي وتسجيل الدخول مرة أخرى.

قم بتثبيت GoCD

قم بتثبيت مستودع GoCD الرسمي في النظام.

echo "deb https://download.gocd.org /" | sudo tee /etc/apt/sources.list.d/gocd.list
curl https://download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
sudo apt update

قم بتثبيت خادم GoCD في نظامك.

sudo apt install -y go-server

قم بتشغيل GoCD وتمكينه من البدء تلقائيًا في وقت التمهيد.

sudo systemctl start go-server
sudo systemctl enable go-server

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

إذا كنت ترغب في استخدام نفس القرص لتخزين الآثار ، فما عليك سوى إنشاء دليل جديد وتوفير الملكية لمستخدم GoCD.

sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts

تكوين تخزين كتلة

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

انشر محرك تخزين كتلة جديد وأرفقه بمثيل خادم GoCD. الآن قم بإنشاء قسم جديد على جهاز تخزين الكتلة.

sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%

قم بإنشاء نظام الملفات على القرص الجديد.

sudo mkfs.ext4 /dev/vdb1

قم بتركيب محرك أقراص التخزين.

sudo mkdir /mnt/artifacts
sudo cp /etc/fstab /etc/fstab.backup
echo "
/dev/vdb1 /mnt/artifacts ext4 defaults,noatime 0 0" | sudo tee -a /etc/fstab
sudo mount /mnt/artifacts

الآن ، قم بالتشغيل dfوسترى محرك تخزين كتلة جديد مركب على /mnt/artifacts.

[user@vultr ~]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       20616252 6313892  13237464  33% /

...
/dev/vdb1       10188052   36888   9610596   1% /mnt/artifacts

توفير ملكية الدليل لمستخدم GoCD.

sudo chown -R go:go /mnt/artifacts

تكوين GoCD

الآن يمكنك الوصول إلى لوحة تحكم GoCD على http://192.168.1.1:8153. للوصول إلى لوحة تحكم GoCD على اتصال آمن ، قم بالوصول https://192.168.1.1:8154. سيظهر لك خطأ يوضح أن الشهادات غير صالحة. يمكنك تجاهل الخطأ بأمان لأن الشهادات موقعة ذاتيًا. لأغراض أمنية ، يجب عليك دائمًا استخدام لوحة التحكم عبر اتصال آمن.

قبل إعداد خط أنابيب جديد ، انتقل إلى " Admin >> Server Configuration" من شريط التنقل العلوي.

أدخل عنوان URL لموقعك غير الآمن في Site URLالحقل " " والموقع الآمن في الحقل " Secure Site URL".

كيفية تثبيت GoCD وتكوينه على أوبونتو 16.04

بعد ذلك ، قدم تفاصيل خادم SMTP لإرسال إشعارات البريد الإلكتروني من GoCD.

كيفية تثبيت GoCD وتكوينه على أوبونتو 16.04

أخيرًا ، قدم المسار إلى المكان الذي ترغب في تخزين العناصر فيه. إذا اخترت تخزين العناصر على نفس القرص مثل نظام التشغيل ، فأدخل /opt/artifacts؛ إذا اخترت إرفاق محرك تخزين كتلة ، فيمكنك الدخول /mnt/artifacts.

يمكنك أيضًا تكوين GoCD لحذف القطع الأثرية تلقائيًا. قم بتكوين الخيار التالي وفقًا لحجم القرص. ومع ذلك ، لا يأخذ خيار الحذف التلقائي نسخة احتياطية من القطع الأثرية القديمة. لأخذ نسخة احتياطية يدويًا ثم حذف العناصر القديمة ، قم بتعطيل الحذف التلقائي باختيار Neverخيار " Auto delete old artifacts" للخيار "".

كيفية تثبيت GoCD وتكوينه على أوبونتو 16.04

ستحتاج إلى إعادة تشغيل خادم GoCD حتى يتم تطبيق التغييرات الجديدة.

sudo systemctl restart go-server

مصادقة الإعداد

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

ملاحظة : يعد إعداد المصادقة خطوة اختيارية ، ولكن يوصى بشدة بالخوادم التي تواجه الجمهور ، مثل Vultr.

قم بتثبيت أدوات Apache حتى نتمكن من استخدام htpasswd الأمر لإنشاء ملف كلمة مرور مشفر.

sudo apt -y install apache2-utils

قم بإنشاء ملف كلمة مرور htpasswd باستخدام الأمر باستخدام تشفير Bcrypt.

sudo htpasswd -B -c /etc/go/passwd_auth goadmin

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

[user@vultr ~]$ sudo htpasswd -B -c /etc/go/passwd_auth goadmin
New password:
Re-type new password:
Adding password for user goadmin

يمكنك إضافة أي عدد تريده من المستخدمين باستخدام نفس الأمر أعلاه ، ولكن قم بإزالة -c الخيار. و -c سوف خيار استبدال الملف الموجود، لتحل محل المستخدمين القديمة مع المستخدم الجديد.

sudo htpasswd -B /etc/go/passwd_auth gouser1

الآن بعد أن أنشأنا ملف كلمة المرور ، ادخل إلى لوحة تحكم GoCD مرة أخرى. انتقل إلى " Admin >> Security >> Authorization Configurations" من شريط التنقل العلوي. انقر على Add الزر وأدخل أي معرف. اختر " Password File Authentication Plugin for GoCD" لمعرف البرنامج المساعد وقم بتوجيه المسار إلى ملف كلمة المرور. انقر الآن على Check Connectionزر " " للتحقق من أن GoCD يمكنه استخدام ملف كلمة المرور للمصادقة.

كيفية تثبيت GoCD وتكوينه على أوبونتو 16.04

أخيرًا ، احفظ طريقة المصادقة. أعد تحميل لوحة التحكم وستخرجك تلقائيًا. سترى شاشة تسجيل الدخول الآن. قم بتسجيل الدخول باستخدام بيانات الاعتماد التي تم إنشاؤها سابقًا.

ستحتاج إلى ترقية المستخدم المسؤول يدويًا ، وإلا ، فسيحصل جميع المستخدمين على امتيازات المسؤول. انتقل إلى " Admin >> User Summary" من شريط التنقل العلوي.

الآن حدد المستخدم الإداري الذي قمت بإنشائه وانقر على القائمة Rolesالمنسدلة " ". قم بترقية المستخدم إلى المسؤول الوحيد بتحديد Go System Administratorخانة الاختيار "".

كيفية تثبيت GoCD وتكوينه على أوبونتو 16.04

لإضافة المستخدمين في GoCD الذي تم إنشاؤه في ملف كلمة المرور ، انقر فوق ADDالزر " " وابحث عن المستخدم لإضافتهم. تتم إضافة المستخدمين تلقائيًا إلى لوحة تحكم GoCD عند تسجيل دخولهم الأول. من الواضح أنه لكي يقوم المستخدمون بتسجيل الدخول ، يجب إضافتهم إلى ملف كلمة المرور الذي أنشأناه سابقًا.

تأمين GoCD باستخدام Let's Encrypt SSL

بشكل افتراضي ، يستمع GoCD إلى المنافذ 8153 وعلى 8154 اتصالات آمنة. على الرغم من أن المنفذ 8154 يوفر اتصالاً آمنًا بالتطبيق ، فإنه يعرض أيضًا أخطاء المستعرض لأنه يستخدم شهادة موقعة ذاتيًا. في هذا القسم من البرنامج التعليمي ، سنقوم بتثبيت وتأمين Nginx بشهادة Let's Encrypt free SSL. سيعمل خادم الويب Nginx كوكيل عكسي لإعادة توجيه الطلبات الواردة إلى HTTP نقطة نهاية GoCD .

قم بتثبيت Nginx.

sudo apt -y install nginx

قم بتشغيل Nginx وتمكينه من البدء تلقائيًا في وقت التمهيد.

sudo systemctl start nginx
sudo systemctl enable nginx

أضف مستودع Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

قم بتثبيت Certbot ، وهو تطبيق العميل لـ Let's Encrypt CA.

sudo apt -y install certbot

ملاحظة : للحصول على شهادات من Let's Encrypt CA ، يجب توجيه النطاق الذي سيتم إنشاء الشهادات من أجله إلى الخادم. إذا لم يكن الأمر كذلك ، قم بإجراء التغييرات اللازمة على سجلات DNS للمجال وانتظر DNS للنشر قبل إجراء طلب الشهادة مرة أخرى. يتحقق Certbot من سلطة المجال قبل تقديم الشهادات.

إنشاء شهادات SSL.

sudo certbot certonly --webroot -w /var/www/html -d gocd.example.com

من المرجح أن يتم تخزين الشهادات التي تم إنشاؤها /etc/letsencrypt/live/gocd.example.com/. سيتم تخزين شهادة SSL كـ وسيتم تخزين fullchain.pem المفتاح الخاص كـ privkey.pem.

تنتهي صلاحية شهادات التشفير خلال 90 يومًا ، لذا يوصى بإعداد التجديد التلقائي للشهادات باستخدام وظائف cron.

افتح ملف مهمة كرون.

sudo crontab -e

أضف السطر التالي إلى نهاية الملف.

30 5 * * * /usr/bin/certbot renew --quiet

سيتم تشغيل وظيفة cron المذكورة أعلاه كل يوم الساعة 5:30 صباحًا. إذا كانت الشهادة مستحقة للانتهاء ، فسيتم تجديدها تلقائيًا.

قم بإنشاء ملف تكوين جديد لواجهة الويب GoCD.

sudo nano /etc/nginx/sites-available/gocd

تعبئة الملف.

upstream gocd {
server 127.0.0.1:8153;
}

server {
    listen 80;
    server_name gocd.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name gocd.example.com;

    ssl_certificate           /etc/letsencrypt/live/gocd.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/gocd.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log  /var/log/nginx/gocd.access.log;

location / {
        proxy_pass http://gocd;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect off;
    }
location /go {
    proxy_pass http://gocd/go;
    proxy_http_version 1.1;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection upgrade;
    proxy_read_timeout 86400;
    }
  }

قم بتنشيط ملف التكوين.

sudo ln -s /etc/nginx/sites-available/gocd /etc/nginx/sites-enabled/gocd

أعد تشغيل خادم الويب Nginx لتنفيذ التغيير في التكوين.

sudo systemctl restart nginx

يمكنك الآن الوصول إلى لوحة تحكم GoCD على https://gocd.example.com. قم بتسجيل الدخول إلى لوحة التحكم باستخدام بيانات اعتماد المسؤول وانتقل إلى " Admin >> Server Configuration" من شريط التنقل العلوي.

كيفية تثبيت GoCD وتكوينه على أوبونتو 16.04

اضبط " Site URL" و " Secure Site URL" على https://gocd.example.com.

تثبيت عامل GoCD

في بيئة التكامل المستمر GoCD ، وكلاء GoCD هم العمال المسؤولون عن تنفيذ جميع المهام. عندما يتم الكشف عن تغيير في المصدر ، يتم تشغيل خط الأنابيب ويتم تعيين الوظائف للعمال المتاحين للتنفيذ. ثم ينفذ الوكيل المهمة ويبلغ عن الحالة النهائية بعد التنفيذ.

لتشغيل خط الأنابيب ، يجب تكوين وكيل واحد على الأقل. تابع تثبيت وكيل GoCD على خادم GoCD.

نظرًا لأننا استوردنا بالفعل مستودع GoCD في الخادم ، يمكننا تثبيت Go Agent مباشرة.

sudo apt install -y go-agent

الآن ، قم بتشغيل خادم GoCD وتمكينه من البدء تلقائيًا في وقت التمهيد.

sudo systemctl start go-agent
sudo systemctl enable go-agent

يتم تمكين وكيل GoCD الذي يعمل على المضيف المحلي تلقائيًا عند اكتشافه.



Leave a Comment

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

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

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

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

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

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

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

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

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد