تثبيت التطبيقات وتحديثها في مجموعات مقياس الجهاز الظاهري

مكتمل

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

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

في هذه الوحدة، ستتعلم كيفية استخدام ملحق برنامج نصي مخصص لتحديث تطبيق يتم تشغيله على مجموعة التوسيع.

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

يقوم ملحق برنامج نصي مخصص Azure بتحميل وتشغيل البرنامج نصي على الجهاز الظاهري لـ Azure. يمكن أتمتة نفس المهام على كافة الأجهزة الظاهرية في مجموعة التوسيع.

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

تثبيت تطبيق عبر مجموعة التوسيع باستخدام ملحق برنامج نصي مخصص

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

يظهر المثال التالي تكوين البرنامج النصي المخصص الذي يقوم بتحميل تطبيق من المستودع في GitHub وتثبيته على مثيل مضيف عن طريق تشغيل برنامج نصي يسمى custom_application_v1.sh :

# yourConfigV1.json 
{
  "fileUris": ["https://raw.githubusercontent.com/yourrepo/master/custom_application_v1.sh"],
  "commandToExecute": "./custom_application_v1.sh"
}

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

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

تحديث تطبيق عبر مجموعة توسيع باستخدام ملحق برنامج نصي مخصص

يمكنك استخدام ملحق برنامج نصي مخصص لتحديث تطبيق موجود عبر مجموعة مقياس الجهاز الظاهري. ستقوم بالإشارة إلى برنامج نصي للتوزيع محدث، ثم إعادة تطبيق الملحق على مجموعة المقياس الخاصة بك. على سبيل المثال، يظهر رمز JSON التالي تكوينًا يجلب إصدارًا جديدًا للتطبيق ويعمل على تثبيته:

# yourConfigV2.json
{
  "fileUris": ["https://raw.githubusercontent.com/yourrepo/master/custom_application_v2.sh"],
  "commandToExecute": "./custom_application_v2.sh"
}

يمكنك استخدام نفس az vmss extension set الأمر الموضح سابقا لنشر التطبيق المحدث، ولكن هذه المرة، ستشير إلى ملف التكوين الجديد:

az vmss extension set \
    --publisher Microsoft.Azure.Extensions \
    --version 2.0 \
    --name CustomScript \
    --resource-group yourResourceGroup \
    --vmss-name yourScaleSet \
    --settings @yourConfigV2.json

يتم تحديث الأجهزة الظاهرية وفقًا لسياسة الترقية لمجموعة التوسيع. ستحدد هذا النهج عند إنشاء مجموعة المقياس لأول مرة. قد يتمتع منهج الترقية بأحد الأوضاع الثلاثة التالية:

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

لتحديد وضع نهج الترقية عند توفير مجموعة مقياس الجهاز الظاهري، يمكنك استخدام upgrade-policy-mode الخيار . يستخدم مثال الرمز التالي CLI Azure:

az vmss create \
  --resource-group MyResourceGroup \
  --name MyScaleSet \
  --image Ubuntu2204 \
  --upgrade-policy-mode automatic \
  --admin-username azureuser \
  --generate-ssh-keys