البرنامج التعليمي: تثبيت التطبيقات في مجموعات مقياس الجهاز الظاهري باستخدام Azure CLI

لتشغيل التطبيقات على حالات الجهاز الافتراضي (VM) في مجموعة مقياس، تحتاج أولًا إلى تثبيت مكونات التطبيق والملفات المطلوبة. في برنامج تعليمي سابق، تعلمت كيفية إنشاء صورة جهاز افتراضي مخصصة واستخدامها لنشر حالات الجهاز الافتراضي الخاصة بك. وشملت هذه الصورة المخصصة تثبيتات التطبيق اليدوي والتكوينات. يمكنك أيضا أتمتة تثبيت التطبيقات إلى مقياس تم تعيينه بعد نشر كل حالة جهاز افتراضي، أو تحديث تطبيق يعمل بالفعل على مجموعة مقياس. في هذا البرنامج التعليمي، ستتعرف على كيفية القيام بما يلي:

  • تثبيت التطبيقات تلقائيًّا على مجموعة المقياس
  • استخدام ملحق البرنامج النصي المخصص Azure
  • تحديث تطبيق قيد التشغيل على مجموعة مقياس

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

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

  • لقراءة هذه المقالة تحتاج الإصدار 2.0.29 أو الأحدث من CLI Azure. إذا كنت تستخدم Azure Cloud Shell، يتم تثبيت أحدث إصدار بالفعل.

ما هو ملحق البرنامج النصي المخصص لAzure؟

يقوم ملحق البرنامج النصي المخصص بتنزيل البرامج النصية وتنفيذها على أجهزة Azure الافتراضية. هذا الملحق مفيد لتكوين ما بعد النشر أو تثبيت البرنامج أو أي مهمة تكوين / إدارة أخرى. يمكن تنزيل البرامج النصية من مساحة تخزين Azure أو GitHub، أو توفيرها إلى مدخل Azure في وقت تشغيل الملحق.

يتكامل ملحق البرنامج النصي المخصص مع قوالب Azure Resource Manager، ويمكن أيضاً تشغيله باستخدام Azure CLI أو Azure PowerShell أو مدخل Azure أو REST API. لمزيد من المعلومات، راجع نظرة عامة على إضافة البرنامج النصي المخصص.

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

إنشاء تعريف ملحق البرنامج النصي المخصص

لمشاهدة ملحق البرنامج النصي المخصص قيد التشغيل، أنشئ مجموعة مقياس تقوم بتثبيت خادم ويب NGINX وإخراج اسم المضيف لمثيل الجهاز الافتراضي لمجموعة المقاييس. يقوم تعريف ملحق البرنامج النصي المخصص التالي بتنزيل نموذج نصي من GitHub، وتثبيت الحزم المطلوبة، ثم كتابة اسم مضيف مثيل الجهاز الظاهري في صفحة HTML الأساسية.

في shell الحالي أنشئ ملفاً باسم customConfig.json وألصق التكوين التالي. على سبيل المثال، قم بإنشاء الملف في Cloud Shell وليس على جهازك المحلي. يمكنك استخدام أي محرر ترغبه. في هذا البرنامج التعليمي سوف نستخدم Vi. أدخلvi في Cloud Shell. الصق JSON أدناه في المحرر واكتب :w customConfig.json.

{
  "fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],
  "commandToExecute": './automate_nginx.sh'
}

إشعار

قد تحتاج إلى عكس استخدام علامتي الاقتباس المفردة (') والمزدوجة (") داخل كتلة JSON إذا قررت الرجوع إلى JSON مباشرةً (بدلاً من الرجوع إلى ملف customConfig.json) في عامل--الإعدادت أدناه.

إنشاء مجموعة تحجيم

هام

بدءا من نوفمبر 2023، سيتم تعيين مجموعات مقياس الجهاز الظاهري التي تم إنشاؤها باستخدام PowerShell وAzure CLI افتراضيا إلى وضع التنسيق المرن إذا لم يتم تحديد وضع التزامن. لمزيد من المعلومات حول هذا التغيير والإجراءات التي يجب اتخاذها، انتقل إلى كسر التغيير لعملاء VMSS PowerShell/CLI - مركز مجتمع Microsoft

أنشئ مجموعة موارد باستخدام إنشاء مجموعة az. في المثال التالي، سيتم إنشاء مجموعة موارد باسم myResourceGroup في موقع eastus:

az group create --name myResourceGroup --location eastus

الآن قم بإنشاء مجموعة مقياس الجهاز الظاهري باستخدام az vmss create. ينشئ المثال التالي مجموعة تحجيم تُسمى myScaleSet، ويُنشئ مفاتيح SSH إذا لم تكن موجودة:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image Ubuntu2204 \
  --orchestration-mode Flexible \
  --admin-username azureuser \
  --generate-ssh-keys

يستغرق الأمر بضع دقائق لإنشاء وتكوين جميع موارد مجموعة المقياس والأجهزة الافتراضية.

طبق ملحق البرنامج النصي المخصص

قم بتطبيق تكوين ملحق البرنامج النصي المخصص على حالات الجهاز الافتراضي في مجموعة المقاييس من خلال az vmss extension set. يطبق المثال التالي تكوين customConfig.json على حالات الجهاز الافتراضي myScaleSetفي مجموعة الموارد المسماةmyResourceGroup:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings customConfig.json

يتم تنزيل كافة مثيلات الجهاز الافتراضي في مجموعة المقياس وتشغيل البرنامج النصي من GitHub. في مثال أكثر تعقيداً، يمكن تثبيت مكونات وملفات متعددة للتطبيقات. إذا تم توسيع نطاق مجموعة المقياس، فإن مثيلات الجهاز الظاهري الجديدة تطبق تلقائياً نفس تعريف ملحق البرنامج النصي المخصص وتثبيت التطبيق المطلوب.

تنبيه

أسماء الملفات حساسة لحالة الأحرف. استخدم اسم الملف المحدد المذكور في هذه الإرشادات لتجنب الفشل.

اختبار مجموعة المقياس لديك

للسماح لعملية نقل البيانات بالوصول إلى خادم الويب، قم بإنشاء قاعدة باستخدام az network lb rule create. ينشئ المثال التالي قاعدة باسم myLoadBalancerRuleWeb:

az network lb rule create \
  --resource-group myResourceGroup \
  --name myLoadBalancerRuleWeb \
  --lb-name myScaleSetLB \
  --backend-pool-name myScaleSetLBBEPool \
  --backend-port 80 \
  --frontend-ip-name loadBalancerFrontEnd \
  --frontend-port 80 \
  --protocol tcp

لمشاهدة خادم الويب لديك أثناء العمل، احصل على عنوان IP العام لموازن التحميل الخاص بك باستخدام az network public-ip show. يحصل المثال التالي على عنوان IP لـ myScaleSetLBPublicIP الذي تم إنشاؤه كجزء من مجموعة المقياس:

az network public-ip show \
  --resource-group myResourceGroup \
  --name myScaleSetLBPublicIP \
  --query [ipAddress] \
  --output tsv

أدخل عنوان IP العام لموازن التحميل في متصفح الويب. يوزع موازن التحميل حركة المرور إلى إحدى مثيلات VM الخاصة بك، كما هو موضح في المثال التالي:

Basic web page in Nginx

اترك مستعرض الويب مفتوحًا حتى تتمكن من مشاهدة إصدار محدث في الخطوة التالية.

تحديث نشر التطبيق

طوال دورة حياة مجموعة التحجيم، قد تحتاج إلى نشر إصدار محدث من التطبيق الخاص بك. باستخدام ملحق البرنامج النصي المخصص، يمكنك الرجوع إلى برنامج نصي محدث للنشر ومن ثم إعادة تطبيق الملحق على مجموعة المقياس لديك. عندما تم إنشاء مجموعة المقياس في خطوة سابقة، تم تعيين --upgrade-policy-mode على automatic. يسمح هذا الإعداد لمثيلات الجهاز الظاهري في مجموعة المقياس بتحديث وتطبيق أحدث إصدار من التطبيق الخاص بك تلقائياً.

في shell الحالي أنشئ ملفاً باسم customConfigv2.json وألصق التكوين التالي. يقوم هذا التعريف بتشغيل إصدار v2 محدث من البرنامج النصي لتثبيت التطبيق:

{
  "fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx_v2.sh"],
  "commandToExecute": "./automate_nginx_v2.sh"
}

قم بتطبيق تكوين ملحق البرنامج النصي المخصص على حالات الجهاز الافتراضي في مجموعة المقاييس مرة أخرى من خلال az vmss extension set. يُستخدم customConfigv2 لتطبيق الإصدار المحدث من التطبيق:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings @customConfigv2.json

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

Updated web page in Nginx

تنظيف الموارد

لإزالة مجموعة المقياس والموارد الإضافية، احذف مجموعة الموارد وكافة مواردها باستخدام az group delete. تُعيد المعلمة --no-wait التحكم إلى الموجه دون انتظار إكمال العملية. المعلمة --yes تؤكد رغبتك في حذف الموارد دون مطالبة إضافية للقيام بذلك.

az group delete --name myResourceGroup --no-wait --yes

الخطوات التالية

في هذا البرنامج التعليمي، تعلمت كيفية تثبيت التطبيقات وتحديثها تلقائيًّا على مجموعة مقياس باستخدام Azure CLI:

  • تثبيت التطبيقات تلقائيًّا على مجموعة المقياس
  • استخدام ملحق البرنامج النصي المخصص Azure
  • تحديث تطبيق قيد التشغيل على مجموعة مقياس

انتقل إلى البرنامج التعليمي التالي لمعرفة كيفية قياس مجموعة المقاييس تلقائيًّا.