
مقدمة
هذه المقالة هي نتيجة بحث استمر أسبوعًا عن معلومات مجزأة جدًا حول كيفية تكوين نشر خدمة الويب على Go. ليس على Heroku ، وليس على Docker ، وليس في Digital Ocean ، ولكن فقط على VDS من الطراز القديم مع CentOS 7x64. لسبب ما ، لا تحتوي الشبكة على هذه المعلومات ، وتبدأ معظم البرامج التعليمية بكيفية إعداد الإصدار وتنتهي بإطلاق الاختبارات.
سأحذرك على الفور أنه لأول مرة قمت بإعداد عملية CI / CD ، لذا فهذه مقالة من مبتدئ إلى مبتدئ.
بالتأكيد يمكن تصحيح الكثير هنا ، لذلك سأقبل أي تعليقات بسرور في التعليقات وحاول تحديث التغييرات في أقرب وقت ممكن. من الممكن أيضًا وجود مثل هذه المقالة بالفعل ، وأنا أستخدم محرك البحث بشكل رهيب. ثم يرجى إعطاء رابط لها ، وفي هذه الحالة ، سأحذف المقالة وأذهب إلى رش الرماد على رأسي.
بيانات المصدر
- خادم VDS
- نظام التشغيل: CentOS 7x64
- اذهب المشروع مع الهيكل التالي:
src/ public/ index.html main.go
إعداد الخادم: إنشاء خدمة
أولاً ، قم بإنشاء خدمة لتطبيقنا. في CentOS 7 ، هذا بسيط جدًا. تحتاج إلى كتابة مثل هذا البرنامج النصي في ملف يسمى serviceName.service:
[Unit]
يجب وضع النص نفسه في المجلد etc / systemd / system /
إعداد SSH
على الخادم ، قم بتشغيل الأمر:
ssh-keygen -f /etc/ssh/hmp.key
عند الطلب
أدخل عبارة المرور (فارغة بدون عبارة مرور)
لا تدخل كلمة مرور ، فقط اضغط Enter.
يتم إنشاء ملفين في المجلد / etc / ssh /:
- hmp.key - مفتاح خاص
- hmp.key.pub - مفتاح عام
نحن بحاجة إلى مفتاح خاص. عرض محتوياته باستخدام الأمر:
cat /etc/ssh/hmp.key
سيبدو شيء من هذا القبيل:
-----BEGIN RSA PRIVATE KEY----- { } -----END RSA PRIVATE KEY-----
كل نسخ تماما إلى الحافظة الخاصة بك
انتباه! - ليس فقط المفتاح نفسه ، ولكن أيضًا
----- يبدأ مفتاح RSA الخاص ----- و ----- نهاية المفتاح الخاص RSA -----
إعداد Gitlab
أولاً ، املأ البيانات المهمة للمستودع (اسم المستخدم وكلمة المرور وما إلى ذلك).
حتى إذا كان المستودع الخاص بك عامًا ، فسيظل مغلقًا.
في Gitlab في المستودع ، انتقل إلى الإعدادات -> CI / CD -> المتغيرات. نقوم بإنشاء المتغيرات التالية هناك:
- SSH_PRIVATE_KEY - الصق القيمة المنسوخة في الفقرة السابقة هنا
- USER_PASS - كلمة مرور المستخدم التي سيتم تشغيل التطبيق منها
- المستخدم - اسم المستخدم الذي سيتم تشغيل التطبيق منه
- HOST - عنوان VDS الخاص بك
- TARGET_DIR_ON_HOST - المجلد الهدف الذي سيتم وضع الخدمة فيه في المثال الخاص بي هو / username / service /
- SERVICE_NAME - اسم الخدمة
- GROUP_NAME هو اسم مستخدم Gitlab الخاص بك
- REPOSITORY_NAME - اسم مستودعك
أضف ملف .gitlab-ci.yml إلى المستودع بالمحتويات التالية:
image: golang:latest before_script:
بعد الضبط ، ندفع هذا النص البرمجي إلى المستودع ولدينا تجميع جاهز ونشره. هذا كل شيء!
آمل أن تكون المقالة مفيدة. لأية أسئلة وتعليقات يسعدني الرد عليها في التعليقات!