التشغيل في شبكة مؤمنة

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

تثبيت Azure CycleCloud في شبكة مؤمنة

يجب أن يكون الجهاز الظاهري CycleCloud قادرا على الاتصال بعدد من واجهات برمجة تطبيقات Azure لتنسيق أجهزة نظام المجموعة الظاهرية والمصادقة على Azure Active Directory. نظرا لأن واجهات برمجة التطبيقات هذه تستخدم HTTPS، يتطلب CycleCloud الوصول إلى HTTPS الصادر إلى:

  • management.azure.com (Azure ARM Management)
  • login.microsoftonline.com (Azure AD)
  • watson.telemetry.microsoft.com (Azure Telemetry)
  • dc.applicationinsights.azure.com (Azure Application Insights)
  • dc.applicationinsights.microsoft.com (Azure Application Insights)
  • dc.services.visualstudio.com (Azure Application Insights)
  • ratecard.azure-api.net (بيانات سعر Azure)

تتم استضافة واجهة برمجة تطبيقات الإدارة إقليميا، ويمكن العثور على نطاقات عناوين IP العامة هنا.

تسجيل الدخول Azure AD هو جزء من واجهات برمجة التطبيقات الشائعة في Microsoft 365 ويمكن العثور على نطاقات عناوين IP للخدمة هنا.

يمكن العثور على نطاقات عناوين IP ل Azure Insights وLog Analytics هنا.

يجب أن يكون Azure CycleCloud قادرا على الوصول إلى حسابات Azure Storage. الطريقة الموصى بها لتوفير وصول خاص إلى هذه الخدمة وأي خدمة Azure أخرى مدعومة هي من خلال نقاط نهاية خدمة الشبكة الظاهرية.

إذا كنت تستخدم مجموعات أمان الشبكة أو جدار حماية Azure للحد من الوصول الصادر إلى المجالات المطلوبة، فمن الممكن تكوين Azure Cyclecloud لتوجيه جميع الطلبات من خلال وكيل HTTPS. راجع: استخدام وكيل ويب

تكوين مجموعة أمان شبكة Azure للجهاز الظاهري CycleCloud

إحدى الطرق للحد من الوصول إلى الإنترنت الصادر من الجهاز الظاهري CycleCloud دون تكوين جدار حماية Azure أو وكيل HTTPS هي تكوين مجموعة أمان شبكة Azure صارمة للشبكة الفرعية للجهاز الظاهري CycleCloud. أبسط طريقة للقيام بذلك هي استخدام علامات الخدمة في الشبكة الفرعية أو مجموعة أمان الشبكة على مستوى الجهاز الظاهري للسماح بالوصول إلى Azure الصادر المطلوب.

  1. تكوين نقطة نهاية خدمة التخزين للشبكة الفرعية للسماح بالوصول من CycleCloud إلى Azure Storage

  2. أضف قاعدة NSG الصادرة التالية إلى رفض الوصول الصادر افتراضيا باستخدام علامة خدمة الوجهة "إنترنت":

أولوية الاسم المنفذ البروتوكول المصدر الوجهة إجراء
4000 حظر الصادر أي أي أي الإنترنت رفض
  1. أضف قواعد NSG الصادرة التالية إلى السماح بالوصول الصادر إلى خدمات Azure المطلوبة حسب علامة الخدمة الوجهة:
أولوية الاسم المنفذ البروتوكول المصدر الوجهة إجراء
100 السماح بAzureStorage 443 بروتوكول تحكم الإرسال أي التخزين السماح
101 AllowActiveDirectory 443 بروتوكول تحكم الإرسال أي AzureActiveDirectory السماح
102 AllowAzureMonitor 443 بروتوكول تحكم الإرسال أي AzureMonitor السماح
103 AllowAzureRM 443 بروتوكول تحكم الإرسال أي AzureResourceManager السماح

الاتصالات الداخلية بين عقد نظام المجموعة و CycleCloud

يجب أن تكون هذه المنافذ مفتوحة للسماح بالاتصال بين عقد نظام المجموعة وخادم CycleCloud:

الاسم المصدر الوجهة الخدمة البروتوكول نطاق المنفذ
amqp_5672 عقدة نظام المجموعة CycleCloud AMQP بروتوكول تحكم الإرسال 5672
https_9443 عقدة نظام المجموعة CycleCloud HTTPS بروتوكول تحكم الإرسال 9443

تشغيل مجموعات Azure CycleCloud في شبكة مؤمنة

ملاحظة

يتم دعم تشغيل عقد نظام المجموعة في شبكة فرعية دون الوصول إلى الإنترنت الصادر بشكل كامل اليوم، ولكنه موضوع متقدم غالبا ما يتطلب إما صورة مخصصة أو تخصيص أنواع ومشاريع نظام مجموعة CycleCloud الافتراضية أو كليهما.

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

يتطلب تشغيل الأجهزة الظاهرية أو مجموعات Cyclecloud في شبكة ظاهرية أو شبكة فرعية مع الوصول إلى الإنترنت الصادر بشكل عام ما يلي:

  1. يجب أن يكون Azure Cyclecloud قابلا للوصول من أجهزة نظام المجموعة الظاهرية للحصول على الوظائف الكاملة. إما:
    1. يجب أن تكون أجهزة نظام المجموعة الظاهرية قادرة على الاتصال ب Azure Cyclecloud مباشرة عبر HTTPS وAMQP، أو
    2. يجب تمكين ميزة Cyclecloud ReturnProxy في وقت إنشاء نظام المجموعة ويجب أن تكون Cyclecloud نفسها قادرة على الاتصال بجهاز ReturnProxy الظاهري عبر SSH
  2. يجب أن تكون جميع حزم البرامج المطلوبة من قبل نظام المجموعة إما:
    1. مثبت مسبقا في صورة مدارة مخصصة لأجهزة نظام المجموعة الظاهرية، أو
    2. متوفر في مرآة مستودع الحزمة التي يمكن الوصول إليها من الأجهزة الظاهرية، أو
    3. نسخ إلى الجهاز الظاهري من Azure Storage وتثبيته مباشرة بواسطة مشروع Cyclecloud
  3. يجب أن تكون جميع عقد نظام المجموعة قادرة على الوصول إلى حسابات Azure Storage. الطريقة الموصى بها لتوفير وصول خاص إلى هذه الخدمة وأي خدمة Azure أخرى مدعومة هي تمكين نقطة نهاية خدمة الشبكة الظاهرية لتخزين Azure.

التحديثات المشروع من GitHub

سيقوم Cyclecloud بتنزيل مشاريع نظام المجموعة من GitHub أثناء مرحلة التزامن "المرحلي". سيحدث هذا التنزيل بعد التثبيت الأولي، أو بعد ترقية Cyclecloud، أو عند بدء مجموعة من نوع معين للمرة الأولى. في بيئة مؤمنة، قد يتم حظر حركة مرور HTTPS الصادرة إلى github.com . في مثل هذه الحالة، سيفشل إنشاء العقدة أثناء مرحلة الموارد المرحلية.

إذا كان يمكن فتح الوصول إلى GitHub مؤقتا أثناء إنشاء العقدة الأولى، فسيعد CycleCloud الملفات المحلية لجميع العقد اللاحقة. إذا لم يكن الوصول المؤقت ممكنا، فيمكن تنزيل الملفات الضرورية من جهاز آخر ونسخها إلى CycleCloud.

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

/opt/cycle_server/cycle_server execute 'select * from cloud.project where name == "slurm"'

AdType = "Cloud.Project"
Version = "2.5.0"
ProjectType = "scheduler"
Url = "https://github.com/Azure/cyclecloud-slurm/releases/2.5.0"
AutoUpgrade = false
Name = "slurm"

تم العثور على إصدار المشروع هذا وكافة التبعيات في [علامة الإصدار] (https://github.com/Azure/cyclecloud-slurm/releases/tag/2.5.0). يجب تنزيل جميع البيانات الاصطناعية للإصدار. قم أولا بتنزيل البيانات الاصطناعية للتعليمات البرمجية وإنشاء دليل blobs للتبعيات الإضافية.

wget https://github.com/Azure/cyclecloud-slurm/archive/refs/tags/2.5.0.tar.gz
tar -xf 2.5.0.tar.gz 
cd cyclecloud-slurm-2.5.0 && mkdir blobs 
#... download all other release artifacts to the /blobs directory with wget ...
wget -P "blobs/" https://github.com/Azure/cyclecloud-slurm/releases/download/2.6.1/cyclecloud_api-8.1.0-py2.py3-none-any.whl
#... copy all the files to the Cyclecloud server
#... then on the Cyclecloud server:
cyclecloud project build
mkdir -p /opt/cycle_server/work/staging/projects/slurm/2.5.0
mkdir -p /opt/cycle_server/work/staging/projects/slurm/blobs
cp build/slurm/* /opt/cycle_server/work/staging/projects/slurm/2.5.0/
cp blobs/* /opt/cycle_server/work/staging/projects/slurm/blobs/
chown -R cycle_server:cycle_server /opt/cycle_server/work/staging

بمجرد أن يتم تنظيم هذه الملفات محليا، سيكتشفها Cyclecloud ولن يحاول تنزيلها من GitHub.