نشر التطبيق الخاص بك على مجموعات مقياس الجهاز الظاهري

إشعار

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

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

إنشاء صورة جهاز ظاهري مخصصة

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

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

تثبيت تطبيق باستخدام Custom Script Extension

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

تثبيت تطبيق على جهاز ظاهري يعمل بنظام Windows باستخدام PowerShell DSC

PowerShell Desired State Configuration (DSC) هو نظام أساسي للإدارة لتحديد تكوين الأجهزة الهدف. تحدد تكوينات DSC ما يجب تثبيته على جهاز وكيفية تكوين المضيف. يعمل محرك Local Configuration Manager (LCM) على كل عقدة هدف تعالج الإجراءات المطلوبة استناداً إلى التكوينات المدفوعة.

يتيح لك ملحق PowerShell DSC تخصيص مثيلات الجهاز الظاهري في مجموعة مقياس تم تعيينها باستخدام PowerShell. المثال التالي:

يتم تطبيق ملحق DSC على مثيلات الجهاز الظاهري myScaleSet في مجموعة الموارد المسماة myResourceGroup. أدخل الأسماء الخاصة بك كما يلي:

# Define the script for your Desired Configuration to download and run
$dscConfig = @{
  "wmfVersion" = "latest";
  "configuration" = @{
    "url" = "https://github.com/Azure-Samples/compute-automation-configurations/raw/master/dsc.zip";
    "script" = "configure-http.ps1";
    "function" = "WebsiteTest";
  };
}

# Get information about the scale set
$vmss = Get-AzVmss `
                -ResourceGroupName "myResourceGroup" `
                -VMScaleSetName "myScaleSet"

# Add the Desired State Configuration extension to install IIS and configure basic website
$vmss = Add-AzVmssExtension `
    -VirtualMachineScaleSet $vmss `
    -Publisher Microsoft.Powershell `
    -Type DSC `
    -TypeHandlerVersion 2.24 `
    -Name "DSC" `
    -Setting $dscConfig

# Update the scale set and apply the Desired State Configuration extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet"  `
    -VirtualMachineScaleSet $vmss

إذا كان نهج الترقية على مجموعة المقياس يدوياً، فقم بتحديث مثيلات الجهاز الظاهري باستخدام Update-AzVmssInstance. يطبق cmdlet هذا تكوين مجموعة المقياس المُحدثة على مثيلات الجهاز الظاهري ويقوم بتثبيت التطبيق الخاص بك.

تثبيت تطبيق على جهاز ظاهري يعمل بنظام Linux باستخدام cloud-init

تُعَد Cloud-init طريقة مستخدمة على نطاق واسع لتخصيص جهاز Linux ظاهري في أثناء تشغيله لأول مرة. يمكنك استخدام cloud-init لتثبيت الحزم وكتابة الملفات، أو لتكوين المستخدمين والأمان. نظرًا لأن أداة cloud-init تعمل في أثناء عملية التمهيد الأولية، فلا توجد خطوات إضافية أو عوامل مطلوبة لتطبيق التكوين الخاص بك.

تعمل Cloud-init أيضًا عبر التوزيعات. على سبيل المثال، لا تستخدم تثبيت apt-get أو تثبيت تثبيت yum لتثبيتحزمة. بدلًا من ذلك يمكنك تحديد قائمة الحزم لتثبيتها. يستخدم Cloud-init تلقائيًّا أداة إدارة الحزمة الأصلية للتوزيعة التي تحددها.

لمزيد من المعلومات، بما في ذلك مثال على ملف cloud-init.txt، راجع استخدام cloud-init لتخصيص أجهزة Azure الظاهرية.

لإنشاء مجموعة مقياس واستخدام ملف cloud-init، أضف المعلمة --custom-data إلى الأمر az vmss create وحدد اسم ملف cloud-init. يُنشئ المثال التالي مجموعة مقياس باسم myScaleSet في myResourceGroup ويكون مثيلات الجهاز الظاهري باستخدام ملف يسمى cloud-init.txt. أدخل الأسماء الخاصة بك كما يلي:

هام

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

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image Ubuntu2204 \
  -–orchestration-mode uniform \
  --upgrade-policy-mode automatic \
  --custom-data cloud-init.txt \
  --admin-username azureuser \
  --generate-ssh-keys

تثبيت التطبيقات مع تحديثات نظام التشغيل

عندما تتوفر إصدارات نظام التشغيل الجديدة، يمكنك استخدام أو إنشاء صورة مخصصة جديدة وتوزيع ترقيات نظام التشغيل إلى مجموعة المقياس. تتم ترقية مثيل كل جهاز ظاهري إلى أحدث صورة تحددها. يمكنك استخدام صورة مخصصة مع التطبيق المثبت مسبقاً، أو Custom Script Extension، أو PowerShell DSC لتوفير تطبيقك تلقائياً أثناء إجراء الترقية. قد تحتاج إلى التخطيط لصيانة التطبيق أثناء تنفيذ هذه العملية للتأكد من عدم وجود مشكلات في توافق الإصدار.

إذا كنت تستخدم صورة جهاز ظاهري مخصصة مع التطبيق المثبت مسبقاً، يمكنك دمج تحديثات التطبيق مع مسار التوزيع لإنشاء الصور الجديدة وتوزيع ترقيات نظام التشغيل عبر مجموعة المقياس. يتيح هذا الأسلوب للمسار التقاط أحدث بنى التطبيقات، وإنشاء صورة جهاز ظاهري والتحقق منها، ثم ترقية مثيلات الجهاز الظاهري في مجموعة المقياس. لتشغيل مسار توزيع يقوم بإنشاء وتوزيع تحديثات التطبيق عبر صور الجهاز الظاهري المخصصة، يمكنك إنشاء صورة Packer وتوزيعها باستخدام Azure DevOps Services، أو استخدام نظام أساسي آخر مثل Spinnaker أو Jenkins.

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

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