البرنامج التعليمي: تثبيت التطبيقات في مجموعات مقياس الجهاز الظاهري باستخدام 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

تنبيه

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

تطبيق الملحق على مثيلات مجموعة التحجيم الموجودة

ترقية كافة المثيلات لتطبيق البرنامج النصي المخصص. قد تستغرق الترقية بضع دقائق.

az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids "*"

السماح بحركة المرور إلى المنفذ 80

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

az network nsg rule create --name AllowHTTP --resource-group myResourceGroup --nsg-name myScaleSetNSG --access Allow --priority 1010 --destination-port-ranges 80 

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

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

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

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

صفحة ويب أساسية في Nginx

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

تغيير نهج الترقية

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

az vmss update \
    --name myScaleSet \
    --resource-group myResourceGroup \
    --set upgradePolicy.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

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

صفحة الويب المحدثة في Nginx

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

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

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

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

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

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

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