كيفية تثبيت GoCD وتكوينه على CentOS 7

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

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

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

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

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

قم بتثبيت Java

يتطلب GoCD Java الإصدار 8 ويدعم كل من Oracle Java و OpenJDK. في هذا البرنامج التعليمي ، سنقوم بتثبيت Java 8 من OpenJDK.

يمكن تثبيت OpenJDK بسهولة ، حيث تتوفر الحزمة في YUMالمستودع الافتراضي .

sudo yum -y install java-1.8.0-openjdk-devel

إذا تم تثبيت Java بشكل صحيح ، فستتمكن من التحقق من إصداره.

java -version

ستحصل على إخراج مماثل للنص التالي.

[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

قبل أن يتسنى لنا مواصلة المضي قدما، فإننا سوف تحتاج إلى إعداد JAVA_HOMEو JRE_HOMEمتغيرات البيئة. ابحث عن المسار المطلق لجافا القابل للتنفيذ في نظامك.

readlink -f $(which java)

سيتم إخراج النص التالي إلى المحطة الطرفية الخاصة بك.

[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre/bin/java

الآن، تعيين JAVA_HOMEو JRE_HOMEمتغيرات البيئة وفقا لمسار دليل جافا.

echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre" >> ~/.bash_profile

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

تنفيذ bash_profileالملف.

source ~/.bash_profile

يمكنك الآن تشغيل echo $JAVA_HOMEالأمر للتأكد من تعيين متغير البيئة.

[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64

قم بتثبيت GoCD

GoCD مكتوب بلغة Java ، وبالتالي فإن Java هي التبعية الوحيدة لتشغيل GoCD. يمكن تثبيت GoCD بمساعدة YUM. قم بتثبيت المستودع الرسمي في النظام.

sudo curl https://download.gocd.org/gocd.repo -o /etc/yum.repos.d/gocd.repo

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

sudo yum 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. الآن قم بإنشاء قسم جديد على جهاز تخزين الكتلة.

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

إعداد جدار الحماية

تغيير تكوين جدار الحماية للسماح الموانئ 8153و 8154من خلال جدار الحماية. 8153يستمع المنفذ للاتصالات غير الآمنة ومنفذ 8154الاتصالات الآمنة.

sudo firewall-cmd --zone=public --add-port=8153/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8154/tcp --permanent
sudo firewall-cmd --reload

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

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

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

كيفية تثبيت GoCD وتكوينه على CentOS 7

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

كيفية تثبيت GoCD وتكوينه على CentOS 7

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

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

كيفية تثبيت GoCD وتكوينه على CentOS 7

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

sudo systemctl restart go-server

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

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

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

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

sudo yum -y install httpd-tools

قم بإنشاء ملف كلمة مرور 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 وتكوينه على CentOS 7

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

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

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

كيفية تثبيت GoCD وتكوينه على CentOS 7

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

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

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

قم بتثبيت Nginx.

sudo yum -y install nginx

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

sudo systemctl start nginx
sudo systemctl enable nginx

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

sudo yum -y install certbot

قبل أن تتمكن من الحصول على شهادات، وسوف تحتاج للسماح الموانئ 80و 443، أو معيار HTTPو HTTPSالخدمات، من خلال جدار الحماية. أيضًا ، قم بإزالة المنفذ 8153الذي يستمع إلى الاتصالات غير الآمنة.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --remove-port=8153/tcp --permanent
sudo firewall-cmd --reload

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

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

sudo certbot certonly --webroot -w /usr/share/nginx/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 صباحًا. إذا كانت الشهادة مستحقة للانتهاء ، فسيتم تجديدها تلقائيًا.

الآن ، قم بتغيير ملف التكوين الافتراضي لـ Nginx لإزالة default_serverالخط.

sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf

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

sudo nano /etc/nginx/conf.d/gocd.conf

تعبئة الملف.

upstream gocd {
server 127.0.0.1:8153;
}

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

server {
    listen 443 default_server;
    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 nginx -t

إذا رأيت الإخراج التالي ، فإن التكوين خالي من الأخطاء.

[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

إذا تلقيت خطأ ما ، فتأكد من التحقق من المسار إلى شهادات SSL. أعد تشغيل خادم الويب Nginx لتنفيذ التغيير في التكوين.

sudo systemctl restart nginx

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

كيفية تثبيت GoCD وتكوينه على CentOS 7

اضبط " Site URL" و " Secure Site URL" على https://gocd.example.com. 8154لا يزال يتعين الوصول إلى المنفذ من خلال جدار الحماية بحيث يمكن للوكلاء البعيدين الاتصال بالخادم من خلال المنفذ 8154، في حالة عدم قدرتهم على الاتصال من خلال HTTPالمنفذ القياسي .

تثبيت عامل GoCD

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

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

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

sudo yum install -y go-agent

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

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

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

اترك تعليقاً

نظرة ثاقبة على 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. قراءة هذه المادة لمعرفة المزيد