اختار الكاتب صندوق التبرعات المفتوح والمجاني لتلقي تبرع كجزء من برنامج الكتابة من أجل التبرعات.
المقدمة
مع أدوات المطورين التي تتحول إلى السحابة، ينمو إنشاء واعتماد منصات بيئة تطوير متكاملة في السحابة. تعتبر بيئات التطوير المتكاملة في السحابة متاحة من كل نوع من الأجهزة الحديثة من خلال متصفحات الويب، وتوفر العديد من المزايا لسيناريوهات التعاون في الوقت الحقيقي. يوفر العمل في بيئة تطوير متكاملة في السحابة بيئة تطوير واختبار موحدة لك ولفريقك، مع تقليل عدم التوافق مع المنصات. وبما أنها تعتمد بشكل أساسي على تقنيات السحابة، فإنها قادرة على الاستفادة من المجموعة لإنجاز المهام، مما يمكن أن يتجاوز بشكل كبير الطاقة والموثوقية لجهاز كمبيوتر تطوير واحد.
إكليبس ذيا هو بيئة تطوير متكاملة في السحابة قابلة للتوسيع تعمل على خادم بعيد ويمكن الوصول إليها من متصفح الويب. من الناحية البصرية، تم تصميمها لتبدو وتتصرف بشكل مماثل لـ مايكروسوفت فيجوال ستوديو كود، مما يعني أنها تدعم العديد من لغات البرمجة، ولديها تخطيط مرن، ولديها واجهة متكاملة. ما يميز إكليبس ذيا عن غيرها من برمجيات بيئة تطوير متكاملة في السحابة هو قابليتها للتوسيع؛ يمكن تعديلها باستخدام تمديدات مخصصة، مما يتيح لك صنع بيئة تطوير متكاملة في السحابة تتناسب مع احتياجاتك.
في هذا البرنامج التعليمي، ستقوم بإعداد الإصدار الافتراضي من منصة Eclipse Theia للتطوير السحابي على عقد Kubernetes الخاص بك في DigitalOcean وتعريضه في نطاقك، مؤمنًا بشهادات Let’s Encrypt ومتطلبًا من الزائرين المصادقة. في النهاية، سيكون Eclipse Theia يعمل على عقد Kubernetes الخاص بك ومتاحًا عبر HTTPS ومتطلبًا من الزائرين تسجيل الدخول.
المتطلبات المسبقة
- A DigitalOcean Kubernetes cluster with your connection configured as the
kubectl
default. Instructions on how to configurekubectl
are shown under the Connect to your Cluster step when you create your cluster. To create a Kubernetes cluster on DigitalOcean, read the Kubernetes Quickstart. - يجب تثبيت مدير الحزم Helm 3 على جهازك المحلي. قم بإكمال الخطوة 1 من البرنامج التعليمي كيفية تثبيت البرمجيات على عقد Kubernetes باستخدام مدير الحزم Helm 3.
- يجب تثبيت متحكم Ingress لـ Nginx على عقدك باستخدام Helm لاستخدام ExternalDNS مع موارد Ingress. للقيام بذلك، اتبع كيفية إعداد Ingress لـ Nginx على DigitalOcean Kubernetes باستخدام Helm.
- A fully registered domain name. This tutorial will use
theia.your_domain
throughout. You can purchase a domain name on Namecheap, get one for free on Freenom, or use the domain registrar of your choice.
الخطوة 1 — تثبيت وت
للبدء، ستقوم بتثبيت Eclipse Theia على عقد Kubernetes الخاص بك في DigitalOcean. بعد ذلك، ستقوم بتعريضه على النطاق المطلوب باستخدام Nginx Ingress.
نظرًا لأنك قمت بإنشاء نموذجين للنشر ومورد كجزء من المتطلبات الأساسية، يمكنك حذفهم بحرية عن طريق تشغيل الأوامر التالية:
لهذا البرنامج التعليمي، ستخزن تكوين النشر على جهازك المحلي، في ملف يسمى eclipse-theia.yaml
. قم بإنشائه باستخدام الأمر التالي:
أضف السطور التالية إلى الملف:
هذا التكوين يحدد مساحة أسماء، ونشر، وخدمة، وإنغريس. تسمى مساحة الأسماء theia
وستحتوي على جميع كائنات Kubernetes المتعلقة بـ Eclipse Theia، مفصولة عن بقية العقد. يتكون النشر من نسخة واحدة من صورة Docker Theia مع منفذ 3000
المكشوف على الحاوية. تبحث الخدمة عن النشر وتعيد تعيين منفذ الحاوية إلى المنفذ HTTP المعتاد، 80
، مما يتيح الوصول إلى Eclipse Theia داخل العقد.
الإنغريس تحتوي على قاعدة لخدمة الخدمة على المنفذ 80
خارجيًا على النطاق المطلوب الخاص بك. في التعليقات الخاصة به، تحدد أنه يجب استخدام متحكم Nginx Ingress لمعالجة الطلبات. تذكر أن تستبدل theia.your_domain
بالنطاق الذي ترغب في استخدامه والذي قمت بتوجيهه إلى محمل التحميل الخاص بعقدك، ثم احفظ وأغلق الملف.
احفظ وأغلق الملف.
ثم، قم بإنشاء التكوين في Kubernetes عن طريق تشغيل الأمر التالي:
سيكون المخرج مشابهًا لهذا:
Outputnamespace/theia created
ingress.networking.k8s.io/theia-next created
service/theia-next created
deployment.apps/theia-next created
يمكنك مشاهدة إنشاء حاوية Eclipse Theia عن طريق تشغيل:
سيكون الإخراج على الشكل التالي:
OutputNAME READY STATUS RESTARTS AGE
theia-next-6f6b98dd4f-qknhb 1/1 Running 0 2m30s
بعد بعض الوقت، سيتحول الحال إلى RUNNING
، مما يعني أنك قمت بتثبيت Eclipse Theia بنجاح على مجموعتك.
انتقل إلى نطاقك على المتصفح. سترى واجهة محرر Eclipse Theia الافتراضية:
لقد قمت بنشر Eclipse Theia على مجموعة Kubernetes الخاصة بـ DigitalOcean وقمت بتعريضها على النطاق المطلوب بواسطة Ingress. في الخطوة التالية، ستؤمن الوصول إلى نشر Eclipse Theia الخاص بك عن طريق تمكين مصادقة الدخول.
الخطوة 2 — تمكين مصادقة الدخول لنطاقك
في هذه الخطوة، ستقوم بتمكين مصادقة اسم المستخدم وكلمة المرور لنشر Eclipse Theia الخاص بك. ستحقق هذا من خلال تجميع قائمة من الاقترانات الصحيحة لتس
يأتي أداة htpasswd
من خادم الويب أباتشي وتُستخدم لإنشاء ملفات تخزين قوائم مجموعات تسجيل الدخول. يكون تنسيق ملفات htpasswd
عبارة عن مجموعة واحدة اسم_المستخدم:كلمة_المرور_المشفرة
لكل سطر، وهذا هو التنسيق الذي يتوقع وحدة تحكم مدخل Nginx أن تتبعه القائمة.
أولاً، قم بتحديث ذاكرة التخزين المؤقتة لمدير الحزم:
ثم، قم بتثبيت htpasswd
على نظامك عن طريق تشغيل الأمر التالي:
ستقوم بتخزين القائمة في ملف يُسمى auth
. قم بإنشائه عن طريق تشغيل:
يجب أن يكون اسم هذا الملف auth
لأن وحدة تحكم مدخل Nginx تتوقع أن يحتوي السر على مفتاح يُسمى data.auth
. إذا كان مفقودًا، ستعيد الوحدة التحكم رمز حالة HTTP 503 الخدمة غير متوفرة
.
أضف مجموعة اسم مستخدم وكلمة مرور إلى auth
عن طريق تشغيل الأمر التالي:
تذكر أن تستبدل اسم_المستخدم
بالاسم المستخدم المطلوب. سيُطلب منك كلمة مرور مرافقة وسيتم إضافة المجموعة إلى ملف auth
. يمكنك تكرار هذا الأمر لأي عدد من المستخدمين الذين ترغب في إضافتهم.
ملاحظة: إذا لم يكن النظام الذي تعمل عليه مثبتًا فيه htpasswd
، يمكنك استخدام نسخة بتعبئتها بواسطة Docker بدلاً من ذلك.
ستحتاج إلى تثبيت Docker على جهازك. للحصول على تعليمات حول كيفية القيام بذلك، قم بزيارة المستندات الرسمية.
قم بتشغيل الأمر التالي لتشغيل النسخة المعبأة بواسطة Docker:
تذكر أن تستبدل <username>
بالاسم المستخدم الذي ترغب في استخدامه. سيُطلب منك كلمة مرور. سيتم كتابة مجموعة تسجيل الدخول المشفرة على الوحدة، وسيتعين عليك إضافتها يدويًا إلى نهاية ملف auth
. كرر هذه العملية لعدد الدخولات التي ترغب في إضافتها.
عند الانتهاء، أنشئ سرًا جديدًا في Kubernetes باستخدام محتويات الملف عبر تشغيل الأمر التالي:
يمكنك رؤية السر باستخدام:
سيكون الإخراج على النحو التالي:
بعد ذلك، ستحتاج إلى تعديل الـ Ingress لجعله يستخدم السر. قم بفتح تكوين النشر للتحرير:
أضف الأسطر المظللة إلى ملفك:
أولاً، في تعليق auth-type
، تحدد أن نوع المصادقة هو basic
. هذا يعني أن Nginx سيتطلب من المستخدم إدخال اسم مستخدم وكلمة مرور. ثم، في auth-secret
، تحدد أن السر الذي يحتوي على قائمة الجمعيات الصحيحة هو theia-basic-auth
، الذي أنشأته للتو. يحدد التعليق المتبقي في auth-realm
رسالة سيتم عرضها للمستخدم كشرح لسبب طلب المصادقة. يمكنك تغيير الرسالة الموجودة في هذا الحقل حسب رغبتك.
احفظ وأغلق الملف.
لنشر التغييرات في عنق الزجاجتك، قم بتشغيل الأمر التالي:
ستظهر النتيجة على النحو التالي:
Outputnamespace/theia unchanged
ingress.networking.k8s.io/theia-next configured
service/theia-next unchanged
deployment.apps/theia-next unchanged
انتقل إلى نطاقك في المتصفح، حيث سيُطلب منك الآن تسجيل الدخول.
لقد قمت بتمكين المصادقة الأساسية لتسجيل الدخول على Ingress الخاص بك عن طريق تكوينه لاستخدام السر المحتوي على مجموعات اسم المستخدم وكلمة المرور المشفرة. في الخطوة التالية، ستقوم بتأمين الوصول بشكل أكبر من خلال إضافة شهادات TLS، بحيث يتم تشفير حركة المرور بينك وبين نشر Eclipse Theia الخاص بك.
الخطوة 3 — تطبيق شهادات Let’s Encrypt HTTPS
في الخطوة التالية، ستقوم بتأمين تثبيت Eclipse Theia الخاص بك من خلال تطبيق شهادات Let’s Encrypt على Ingress الخاص بك، والتي ستقوم Cert-Manager بتوفيرها تلقائيًا. بعد إكمال هذه الخطوة، سيكون بإمكانك الوصول إلى تثبيت Eclipse Theia الخاص بك عبر HTTPS.
افتح eclipse-theia.yaml
للتحرير:
أضف الأسطر المميزة إلى ملفك، مُتأكدًا من استبدال النطاق النموذجي بالخاص بك:
أولاً، قم بتحديد ClusterIssuer letsencrypt-prod
الذي قمت بإنشائه كجزء من المتطلبات المسبقة كالمُصدر الذي سيُستخدم لتوفير الشهادات لهذا الـ Ingress. ثم، في القسم tls
، قم بتحديد النطاق الدقيق الذي يجب تأمينه، بالإضافة إلى اسم لسر يحمل تلك الشهادات.
احفظ وأغلق الملف.
قم بتطبيق التغييرات على عقدتك عن طريق تشغيل الأمر التالي:
سيبدو الإخراج كما يلي:
Outputnamespace/theia unchanged
ingress.networking.k8s.io/theia-next configured
service/theia-next unchanged
deployment.apps/theia-next unchanged
سوف يستغرق بضع دقائق لتوفير الشهادات وتطبيقها بالكامل. يمكنك تتبع التقدم عن طريق مراقبة الناتج من الأمر التالي:
عند الانتهاء، ستبدو نهاية الناتج مشابهة لهذا:
Output...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal GeneratedKey 42m cert-manager Generated a new private key
Normal Requested 42m cert-manager Created new CertificateRequest resource "theia-prod-3785736528"
Normal Issued 42m cert-manager Certificate issued successfully
قم بتحديث نطاقك في متصفحك. سترى قفلًا أخضرًا يظهر على الجانب الأقصى الأيسر من شريط العنوان، مما يشير إلى أن الاتصال آمن.
لقد قمت بتكوين الـ Ingress لاستخدام شهادات Let’s Encrypt مما يجعل نشر Eclipse Theia الخاص بك أكثر أمانًا. الآن يمكنك مراجعة واجهة مستخدم Eclipse Theia الافتراضية.
الخطوة 4 — استخدام واجهة Eclipse Theia
في هذا القسم، ستكتشف بعض ميزات واجهة Eclipse Theia.
على الجانب الأيسر من بيئة التطوير المتكاملة، هناك صف عمودي من أربعة أزرار تفتح أكثر الميزات استخدامًا في لوح جانبي.
يمكن تخصيص هذه الشريط لذلك يمكنك نقل هذه العروض إلى ترتيب مختلف أو إزالتها من الشريط. بشكل افتراضي، تفتح العرض الأول لوحة المستكشف التي توفر تصفحًا شبيه بشجرة لهيكل المشروع. يمكنك إدارة المجلدات والملفات هنا — إنشاؤها، حذفها، نقلها، وإعادة تسميتها حسب الحاجة.
بعد إنشاء ملف جديد من خلال قائمة الملف، سترى ملفًا فارغًا مفتوحًا في علامة تبويب جديدة. بمجرد الحفظ، يمكنك عرض اسم الملف في اللوحة الجانبية للمستكشف. لإنشاء مجلدات، انقر بزر الماوس الأيمن على الشريط الجانبي للمستكشف وانقر على مجلد جديد. يمكنك توسيع مجلد بالنقر فوق اسمه بالإضافة إلى سحب وإسقاط الملفات والمجلدات إلى الأجزاء العليا من التسلسل الهرمي لنقلها إلى موقع جديد.
الخيار التالي يوفر الوصول إلى وظيفة البحث والاستبدال. بعد ذلك، يوفر الخيار التالي عرضًا لأنظمة التحكم في المصدر التي قد تكون تستخدمها، مثل Git.
العرض التالي هو خيار المصحح، الذي يوفر جميع الإجراءات الشائعة للمصحح في اللوحة. يمكنك حفظ تكوينات المصحح في ملف launch.json
.
الخيار النهائي يتيح لك عرض وتثبيت الامتدادات:
الجزء المركزي من واجهة المستخدم الرسومية هو محررك، الذي يمكنك فصله بواسطة علامات التبويب لتحرير الكود الخاص بك. يمكنك تغيير عرض التحرير الخاص بك إلى نظام الشبكة أو إلى ملفات جانبية. مثل جميع بيئات التطوير المتكاملة الحديثة، يدعم Eclipse Theia تحديد البناء الصحيح لكودك.
يمكنك الوصول إلى وحدة الطرفية عن طريق كتابة CTRL+SHIFT+`
، أو عن طريق النقر على الطرفية في القائمة العلوية، واختيار طرفية جديدة. ستفتح الطرفية في لوحة سفلية وسيتم تعيين دليل العمل الخاص بها إلى مساحة العمل للمشروع، التي تحتوي على الملفات والمجلدات المعروضة في اللوحة الجانبية للمستكشف.
إذا كنت ترغب في إنهاء نشر Eclipse Theia على عنقودك، قم بتشغيل الأمر التالي:
لقد استكشفت نظرة عامة عالية المستوى لواجهة Eclipse Theia وقمت بمراجعة بعض الميزات الأكثر استخدامًا.
الختام
لديك الآن Eclipse Theia، بيئة تطوير متعددة الاستخدامات على السحابة، مثبتة على مجموعة DigitalOcean Kubernetes الخاصة بك. لقد قمت بتأمينها بشهادة TLS مجانية من Let’s Encrypt وقمت بإعداد الحالة لتتطلب تسجيل الدخول من الزائر. يمكنك العمل على رموز المصدر والمستندات الخاصة بك بها بشكل فردي أو التعاون مع فريقك. يمكنك أيضًا محاولة بناء نسختك الخاصة من Eclipse Theia إذا كنت بحاجة إلى وظائف إضافية. لمزيد من المعلومات حول كيفية القيام بذلك، قم بزيارة مستندات Theia.