تمرين - إنشاء برنامج نصي للتهيئة السحابية للاستخدام مع Azure CycleCloud
عند توفير العقد لنظام مجموعة، قد تحتاج إلى أن تكون قادرا على تنفيذ مهام التكوين المخصصة أثناء عملية تمهيد نظام التشغيل، قبل أن تصبح أي تغييرات تستند إلى المجدول سارية المفعول. يمكن أن تتضمن هذه المهام، على سبيل المثال، تحديث متغيرات بيئة المسار، أو تكوين إعدادات تحليل اسم نظام أسماء المجالات (DNS)، أو ربط العقد بمجال Microsoft Entra Domain Services (AD DS).
لتنفيذ هذه الوظيفة، تقرر استكشاف استخدام cloud-init في مجموعات Azure CycleCloud واختبارها باستخدام برنامج Bash نصي بسيط يعدل محتوى ملف محلي على كل عقدة. تنوي التحقق من صحة النتيجة عن طريق الاتصال بعقد نظام المجموعة ومراجعة محتوى الملفات المعدلة.
ملاحظه
عند تأليف البرامج النصية ل cloud-init، يمكنك استخدام أي طريقة برمجة نصية أو تكوين يمكن لنظام التشغيل الذي يعمل على العقد المستهدفة التعرف عليها ومعالجتها، بما في ذلك البرمجة النصية التقليدية ل shell وPython وYAML.
في هذا التمرين، ستقوم بتنفيذ المهام التالية:
- المهمة 1: تكوين المصادقة المستندة إلى SSH لعقد نظام مجموعة Azure CycleCloud
- المهمة 2: إضافة برنامج نصي cloud-init إلى عقد نظام المجموعة
- المهمة 3: التحقق من وظيفة تهيئة السحابة على عقدة المجدول
- المهمة 4: التحقق من وظيفة تهيئة السحابة على عقد الحوسبة
- المهمة 5: تنظيف بيئة التمرين
ملاحظه
تأكد من إكمال التمرين السابق بنجاح قبل بدء هذا التمرين.
المهمة 1: تكوين المصادقة المستندة إلى SSH لعقد نظام مجموعة Azure CycleCloud
للتحقق من صحة تنفيذ البرامج النصية للتكوين السحابي، ستتصل بعقد نظام المجموعة باستخدام Azure CycleCloud CLI من Azure Cloud Shell. يعتمد هذا الاتصال على المصادقة المستندة إلى مفتاح SSH، لذلك ستحتاج إلى تحميل المفتاح الخاص المقابل للمفتاح العام الموزع على عقد نظام المجموعة إلى الدليل الرئيسي Azure Cloud Shell.
انتقل إلى مدخل Microsoft Azure، وعند المطالبة، قم بالمصادقة باستخدام حساب Microsoft أو حساب Microsoft Entra له دور المساهم أو المالك في اشتراك Azure الذي تستخدمه في هذه الوحدة النمطية.
من مدخل Microsoft Azure، افتح Cloud Shell عن طريق تحديد أيقونته في شريط الأدوات بجوار مربع البحث وتأكد من تشغيل جلسة عمل Bash.
في جزء Azure Cloud Shell، في شريط أدوات الجزء، حدد الأيقونة الرابعة التي تعرض صفحة مع زوج من الأسهم العمودية التي تشير إلى الاتجاهات المعاكسة. ثم، في القائمة المنسدلة، حدد Upload.
في مربع الحوار فتح ، انتقل إلى موقع ملف .pem الذي يحتوي على المفتاح الخاص وحدد Open.
قم بتشغيل الأوامر التالية في Cloud Shell لنقل ملف .pem الذي تم تحميله إلى الموقع الصحيح وتكوين الأذونات الضرورية على مستوى الملف (استبدل العنصر النائب
<private_key.pem>باسم ملف .pem):mkdir -p ~/.ssh mv private_key.pem ~/.ssh chmod 600 ~/.ssh/cc-ssh-keys.pem
المهمة 2: إضافة برنامج نصي cloud-init إلى عقد نظام المجموعة
يتوفر خيار إضافة برامج نصية إلى عقد نظام المجموعة مباشرة من واجهة Azure CycleCloud الرسومية. ستستخدمه لتعيين نفس البرنامج النصي cloud-init إلى المجدول وعقد الحساب والتحقق من وظائفه. يضيف البرنامج النصي إدخالا 10.10.10.10 cc.contoso.com إلى ملف /etc/hosts.
إذا لم تكن متصلا بعد بتطبيق ويب Azure CycleCloud، فافتح نافذة متصفح أخرى وانتقل إلى عنوان URL https://<IP_address>. إذا تمت مطالبتك، فتأكد من رغبتك في المتابعة.
إذا تمت مطالبتك بالمصادقة، فسجل الدخول عن طريق توفير بيانات اعتماد حساب مستخدم تطبيق Azure CycleCloud مع دور المسؤول.
في واجهة Azure CycleCloud الرسومية، انتقل إلى صفحة Clusters. في قائمة المجموعات، حدد إدخال contoso-custom-slurm-lab-cluster، ثم حدد Edit.
في النافذة المنبثقة Edit contoso-custom-slurm-lab-cluster، حدد إدخال Cloud-init، وفي علامة التبويب مجدول في قسم تكوين Cloud-init، أدخل البرنامج النصي التالي:
#!/bin/bash echo "10.10.10.10 www.contoso.com" >> /etc/hosts
في نفس النافذة المنبثقة، مع تحديد إدخال Cloud-init، حدد كل علامة تبويب متبقية (بما في ذلك cudaو hpcو htc) وأدخل نفس البرنامج النصي. حدد Save.
المهمة 3: التحقق من وظيفة تهيئة السحابة على عقدة المجدول
للتحقق من وظيفة تهيئة السحابة على عقدة المجدول، ستبدأ المجموعة. سيؤدي هذا إلى تشغيل توفير عقدة المجدول. بعد تشغيل العقدة، ستتمكن من الاتصال بها من Azure Cloud Shell والتحقق من أن ملف /etc/hosts يحتوي على الإدخال 10.10.10.10www.contoso.com.
في نافذة المستعرض التي تعرض تطبيق الويب Azure CycleCloud، حدد رابط Start على صفحة contoso-custom-slurm-lab-cluster. عند مطالبتك بالتأكيد، حدد OK.
ملاحظه
إذا كان نظام المجموعة قيد التشغيل بالفعل، فستحتاج إلى إنهائه وإعادة تشغيله لتطبيق التكوين المحدث، وإلا فلن يكون هذا التكوين مرئيا في الخطوات اللاحقة.
في قائمة العقد، حدد إدخال Scheduler ومراقبة حالته في جزء تفاصيل، وانتظر حتى يتغير من الحصول على إلى جاهز.
ملاحظه
قد يستغرق هذا حوالي ثلاث دقائق.
في جزء تفاصيل، حدد Connect. في النافذة المنبثقة Connect to node: scheduler، في قسم Using the CycleCloud CLI، حدد الإدخال الذي يحتوي على الأمر الذي يسمح لك بالاتصال بعقدة المجدول وحدد Close:
ملاحظه
يجب أن يحتوي الأمر على التنسيق
cyclecloud connect scheduler -c contoso-custom-slurm-lab-clusterقم بالتبديل إلى نافذة مستعرض الويب باستخدام جزء Cloud Shell وقم بتشغيل الأمر الذي نسخته في الخطوة السابقة.
ملاحظه
يجب أن يقوم الأمر بإنشاء الإخراج بالتنسيق التالي:
m@Azure:~$ cyclecloud connect scheduler -c contoso-custom-slurm-lab-cluster Connecting to cc-admin@40.87.52.25 (contoso-custom-slurm-lab-cluster scheduler) using SSH [cc-admin@ip-0A000304 ~]$عند الاتصال بعقدة المجدول، قم بتشغيل الأمر التالي للتحقق من أن ملف /etc/hosts يحتوي على الإدخال 10.10.10.10
www.contoso.com:grep "10.10.10.10 www.contoso.com" /etc/hostsملاحظه
يجب أن يقوم الأمر بإنشاء الإخراج بالتنسيق التالي:
[cc-admin@ip-0A000304 ~]$ grep "10.10.10.10 www.contoso.com" /etc/hosts 10.10.10.10 www.contoso.com
المهمة 4: التحقق من وظيفة تهيئة السحابة على عقد الحوسبة
الآن، ستقوم بتكرار التسلسل المكافئ من الخطوات للتحقق من وظيفة cloud-init على عقد الحساب.
مهم
قبل أن تتمكن من تطبيق الإجراء المكافئ للتحقق من وظيفة cloud-init على عقد الحساب، تحتاج إلى إزالة وإعادة تخصيص مجموعة مقياس الجهاز الظاهري المقابلة. هذه الخطوة خاصة بالمجموعة المستندة إلى Slurm لأن تكامل التحجيم التلقائي للمجدول يتطلب في هذه الحالة أن يقوم Azure CycleCloud بملء عقد الحوسبة مسبقا. ونتيجة لذلك، لن يؤثر تكوين cloud-init الذي قمت بتطبيقه سابقا في هذا التمرين على العقد الموجودة بالفعل.
أثناء الاتصال بعقدة المجدول، قم بتشغيل الأوامر التالية في Cloud Shell لإزالة عقد الحوسبة وإعادة تخصيصها في نظام مجموعة Azure CycleCloud وإنهاء الاتصال بعقدة المجدول:
sudo -i cd /opt/cycle/jetpack/system/bootstrap/slurm ./cyclecloud_slurm.sh remove_nodes ./cyclecloud_slurm.sh scale exit exitملاحظه
سيتم تقديم الرسائل التي تفيد محاولة إزالة العقد التالية متبوعة بإكمال إعادة تحجيم المجموعة بمجرد اكتمال هذه الخطوة.
على جهاز الكمبيوتر الخاص بك، قم بالتبديل إلى نافذة مستعرض الويب التي تعرض صفحة contoso-custom-slurm-lab-cluster لتطبيق الويب Azure CycleCloud. في علامة التبويب العقد، حدد الصف htc، وفي جزء Details، حدد إدخال htc-1، ثم حدد عنوان علامة التبويب Actions. في القائمة المنسدلة، حدد البدء، وحدد موافق عند مطالبتك بالتأكيد.
في جزء تفاصيل، راقب العقدة التي بدأت حديثا وانتظر حتى تتغير حالتها من الحصول على إلى جاهز.
ملاحظه
قد يستغرق هذا حوالي ثلاث دقائق.
في جزء تفاصيل، حدد Connect. في النافذة المنبثقة Connect to node: htc-1، حدد الإدخال في باستخدام قسم CycleCloud CLI الذي يحتوي على الأمر الذي يسمح لك بالاتصال بعقدة المجدول وحدد Close:
ملاحظه
يجب أن يحتوي الأمر على التنسيق
cyclecloud connect htc-1 -c contoso-custom-slurm-lab-cluster.قم بالتبديل إلى جزء Cloud Shell وقم بتشغيل الأمر الذي نسخته في الخطوة السابقة.
ملاحظه
يجب أن يقوم الأمر بإنشاء الإخراج بالتنسيق التالي:
m@Azure:~$ cyclecloud connect htc-1 -c contoso-custom-slurm-lab-cluster Connecting to cc-admin@10.0.3.5 (contoso-custom-slurm-lab-cluster htc-1) through SSH bastion at cc-admin@40.87.52.25 [cc-admin@ip-0A000305 ~]$عند الاتصال بعقدة htc-1 ، قم بتشغيل الأمر التالي للتحقق من أن ملف /etc/hosts يحتوي على الإدخال 10.10.10.10
www.contoso.com:cat /etc/hosts | grep "10.10.10.10 www.contoso.com"ملاحظه
يجب حذف جميع الموارد التي قمت بنشرها في هذه التدريبات السابقة لهذه الوحدة بمجرد الوصول إلى هذه النقطة. يسمح لك هذا بتجنب الرسوم المرتبطة بالاحتفاظ بهذه الموارد مقابل اشتراك Azure الخاص بك.
المهمة 5: تنظيف بيئة المختبر
اكتمل اختبار تخصيص نظام المجموعة باستخدام تطبيق Azure CycleCloud. لتجنب التكاليف غير الضرورية المرتبطة باستخدام موارد Azure، ستقوم الآن بإنهاء نظام المجموعة وإزالة جميع الموارد التي قمت بتوفيرها خلال تمارين هذه الوحدة النمطية.
في مستعرض الويب الذي يعرض الواجهة الرسومية لتطبيق الويب Azure CycleCloud، حدد الارتباط إنهاء على صفحة contoso-custom-slurm-lab-cluster، وعند مطالبتك بالتأكيد، حدد موافق.
مراقبة عملية الإنهاء.
ملاحظه
تتضمن العملية إلغاء توفير جهاز Azure الظاهري الذي يخدم دور عقدة رأس نظام المجموعة. قد يستغرق هذا حوالي خمس دقائق.
ملاحظه
لحذف جميع الموارد الأخرى التي قمت بتوفيرها في هذا المختبر، ستقوم بحذف مجموعات الموارد التي تستضيف موارد نظام المجموعة.
في مدخل Microsoft Azure، انتقل إلى جزء مجموعة الموارد التي تستضيف موارد نظام المجموعة، وحدد إدخال Delete resource group في شريط الأدوات. في أدخل اسم مجموعة الموارد لتأكيد الحذف مربع النص، أدخل اسم مجموعة الموارد وحدد Delete. حدد Delete مرة أخرى لتأكيد الحذف.
ملاحظه
قد تكون هناك مجموعات موارد إضافية مقترنة بموارد Slurm الخاصة بك. لتجنب الرسوم الإضافية، تأكد من حذف جميع مجموعات الموارد ذات الصلة ب Slurm ومواردها.
مبروك! لقد أكملت بنجاح التمرين الثالث والأخير لهذه الوحدة النمطية. في هذا التمرين، استكشفت استخدام cloud-init في مجموعات Azure CycleCloud واختبرته باستخدام برنامج Bash نصي بسيط قام بتعديل محتوى ملف محلي على كل عقدة. لقد تحققت من صحة النتيجة عن طريق الاتصال بعقد نظام المجموعة ومراجعة محتوى الملفات المعدلة. بعد ذلك، قمت بإنهاء نظام المجموعة وحذف كافة موارد نظام المجموعة التي استخدمتها في هذه الوحدة لتجنب أي تكاليف غير ضرورية.