ملحقات الجهاز الظاهري وميزات Windows

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

يمكنك تشغيل ملحقات Azure VM باستخدام قوالب Azure CLI وPowerShell وAzure Resource Manager (ARM) ومدخل Azure. يمكنك تجميع الملحقات مع توزيع جديد لجهاز ظاهري أو تشغيلها مقابل نظام موجود.

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

عينات وحالات الاستخدام

يحتوي كل ملحق Azure VM على حالة استخدام محددة. إليك بعض الأمثلة:

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

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

راجع المتطلبات الأساسية التالية للعمل مع ملحقات Azure VM.

Azure VM Agent

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

يدير Azure VM Agent التفاعلات بين Azure VM ووحدة تحكم Azure fabric. يتولى العامل مسؤولية العديد من الجوانب الوظيفية لنشر أجهزة Azure الظاهرية وإدارتها، بما في ذلك تشغيل ملحقات الأجهزة الظاهرية.

يتم تثبيت Azure VM Agent مسبقاً على صور Azure Marketplace. يمكن أيضا تثبيت العامل يدويا على أنظمة التشغيل المدعومة.

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

الوصول إلى الشبكة

يتم تنزيل حزم الملحقات من مستودع ملحقات Azure Storage. يتم نشر تحميلات حالة الإضافة إلى Azure Storage.

إذا كنت تستخدم إصداراً مدعوماً من Azure VM Agent، فلن تحتاج إلى السماح بالوصول إلى Azure Storage في منطقة الجهاز الظاهري. يمكنك استخدام عامل الجهاز الظاهري لإعادة توجيه الاتصال إلى وحدة تحكم نسيج Azure لاتصالات العامل (عبر الميزة HostGAPlugin من خلال القناة المميزة على عنوان IP الخاص 168.63.129.16). إذا كنت تستخدم إصدارا غير مدعوم من عامل الجهاز الظاهري، فستحتاج إلى السماح بالوصول الصادر إلى Azure Storage في تلك المنطقة من الجهاز الظاهري.

هام

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

يمكن استخدام العوامل فقط لتنزيل حزم الملحقات وحالة التقرير. على سبيل المثال، إذا كان تثبيت ملحق يحتاج إلى تنزيل برنامج نصي من GitHub (ملحق البرنامج النصي المخصص) أو يتطلب الوصول إلى Azure Storage (Azure Backup)، فأنت بحاجة إلى فتح منافذ جدار الحماية أو مجموعة أمان الشبكة (NSG) الأخرى. الملحقات المختلفة لها متطلبات مختلفة لأنها تطبيقات في حد ذاتها. بالنسبة للملحقات التي تتطلب الوصول إلى Azure Storage أو معرف Microsoft Entra، يمكنك السماح بالوصول باستخدام علامات خدمة Azure NSG.

لا يوفر عامل Azure VM دعم الخادم الوكيل لتمكين إعادة توجيه طلبات حركة مرور العامل. يعتمد عامل الجهاز الظاهري على الوكيل المخصص (إذا كان لديك واحد) للوصول إلى الموارد على الإنترنت أو على المضيف من خلال عنوان IP 168.63.129.16.

اكتشاف ملحقات VM

يتوفر العديد من الملحقات المختلفة للجهاز الظاهري للاستخدام مع أجهزة Azure VM. لمشاهدة قائمة كاملة، استخدم Get-AzVMExtensionImage PowerShell cmdlet.

يسرد الأمر التالي جميع ملحقات الجهاز الظاهري المتوفرة في موقع منطقة غرب الولايات المتحدة:

Get-AzVmImagePublisher -Location "West US" |
Get-AzVMExtensionImageType |
Get-AzVMExtensionImage | Select Type, Version

يوفر هذا الأمر إخراجا مشابها للمثال التالي:

Type                Version
----                -------
AcronisBackup       1.0.33
AcronisBackup       1.0.51
AcronisBackupLinux  1.0.33
AlertLogicLM        1.3.0.1
AlertLogicLM        1.3.0.0
AlertLogicLM        1.4.0.1

تشغيل ملحقات VM

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

يمكنك استخدام الطرق التالية لتشغيل ملحق مقابل جهاز ظاهري موجود.

إشعار

تستخدم "<placeholder>" بعض الأمثلة التالية قيم المعلمات في الأوامر. قبل تشغيل كل أمر، تأكد من استبدال أي "<placeholder>" قيم بقيم محددة للتكوين الخاص بك.

PowerShell

يتوفر العديد من أوامر PowerShell لتشغيل ملحقات فردية. لمشاهدة قائمة، استخدم الأمر Get-Command وعامل التصفية على Extension:

Get-Command Set-Az*Extension* -Module Az.Compute

يوفر هذا الأمر إخراجا مشابها للمثال التالي:

CommandType     Name                                          Version    Source
-----------     ----                                          -------    ------
Cmdlet          Set-AzVMAccessExtension                       4.5.0      Az.Compute
Cmdlet          Set-AzVMADDomainExtension                     4.5.0      Az.Compute
Cmdlet          Set-AzVMAEMExtension                          4.5.0      Az.Compute
Cmdlet          Set-AzVMBackupExtension                       4.5.0      Az.Compute
Cmdlet          Set-AzVMBginfoExtension                       4.5.0      Az.Compute
Cmdlet          Set-AzVMChefExtension                         4.5.0      Az.Compute
Cmdlet          Set-AzVMCustomScriptExtension                 4.5.0      Az.Compute
Cmdlet          Set-AzVMDiagnosticsExtension                  4.5.0      Az.Compute
Cmdlet          Set-AzVMDiskEncryptionExtension               4.5.0      Az.Compute
Cmdlet          Set-AzVMDscExtension                          4.5.0      Az.Compute
Cmdlet          Set-AzVMExtension                             4.5.0      Az.Compute
Cmdlet          Set-AzVMSqlServerExtension                    4.5.0      Az.Compute
Cmdlet          Set-AzVmssDiskEncryptionExtension             4.5.0      Az.Compute

يستخدم المثال التالي ملحق البرنامج النصي المخصص لتنزيل برنامج نصي من مستودع GitHub على الجهاز الظاهري الهدف ثم قم بتشغيل البرنامج النصي.

Set-AzVMCustomScriptExtension -ResourceGroupName "<myResourceGroup>" `
    -VMName "<myVM>" -Name "<myCustomScript>" `
    -FileUri "https://raw.githubusercontent.com/neilpeterson/nepeters-azure-templates/master/windows-custom-script-simple/support-scripts/Create-File.ps1" `
    -Run "Create-File.ps1" -Location "<myVMregion>"

يستخدم المثال التالي ملحق VMAccess لإعادة تعيين كلمة المرور الإدارية لـ Windows VM إلى كلمة مرور مؤقتة. بعد تشغيل هذه التعليمة البرمجية، يجب إعادة تعيين كلمة المرور عند تسجيل الدخول الأول.

$cred=Get-Credential

Set-AzVMAccessExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myVMAccess" `
    -Location "myVMregion" -UserName $cred.GetNetworkCredential().Username `
    -Password $cred.GetNetworkCredential().Password -typeHandlerVersion "2.0"

يمكنك استخدام الأمر Set-AzVMExtension لبدء أي ملحق VM.

مدخل Azure

يمكنك تطبيق ملحقات VM على جهاز ظاهري موجود من خلال مدخل Azure. حدد الجهاز الظاهري في المدخل، وحدد Extensions + Applications، ثم حدد + Add. اختر الملحق الذي تريده من قائمة الملحقات المتوفرة، واتبع الإرشادات الموجودة في المعالج.

يوضح المثال التالي تثبيت ملحق Microsoft Antimalware من مدخل Azure:

Screenshot of the dialog for installing the Microsoft Antimalware extension.

قوالب Azure Resource Manager

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

مثال JSON التالي هو من قالب ARM الذي ينشر مجموعة من الأجهزة الظاهرية المتوازنة التحميل وقاعدة بيانات Azure SQL، ثم يقوم بتثبيت تطبيق .NET Core على كل جهاز ظاهري. يعتني ملحق VM بتثبيت البرنامج.

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
    "[variables('musicstoresqlName')]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ]
    },
    "protectedSettings": {
        "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
    }
    }
}

لمزيد من المعلومات حول إنشاء قوالب ARM، راجع الأجهزة الظاهرية في قالب ARM.

المساعدة في تأمين بيانات ملحق الجهاز الظاهري

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

يوضح مثال JSON التالي مثيلا لملحق البرنامج النصي المخصص ل Windows. يتضمن أمر التشغيل مجموعة من بيانات الاعتماد. في هذا المثال، الأمر المراد تشغيله غير مشفر.

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
    "[variables('musicstoresqlName')]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ],
        "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
    }
    }
}

يساعد نقل الخاصية commandToExecute إلى التكوين protected على تأمين سلسلة التنفيذ، كما هو موضح في المثال التالي:

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
    "[variables('musicstoresqlName')]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ]
    },
    "protectedSettings": {
        "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
    }
    }
}

على جهاز ظاهري لـ Azure infrastructure as a service (IaaS) يستخدم ملحقات، في وحدة تحكم الشهادات، قد تشاهد الشهادات التي تحتوي على الموضوع Windows Azure CRP Certificate Generator. على جهاز ظاهري كلاسيكي لـ RedDog Front End (RDFE)، يكون لهذه الشهادات اسم الموضوع Windows Azure Service Management for Extensions.

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

كيفية تحديث العملاء والإضافات

تشترك العوامل والملحقات في آلية التحديث التلقائي نفسها.

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

  • أقراص البيانات
  • ملحقات
  • علامات الملحقات
  • حاوية تشخيصات التمهيد
  • أسرار نظام تشغيل الضيف
  • حجم الجهاز الظاهري
  • ملف تعريف الشبكة

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

إشعار

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

سرد الملحقات المنشورة على جهاز ظاهري

يمكنك استخدام الأمر التالي لسرد الملحقات المنشورة على جهاز ظاهري:

$vm = Get-AzVM -ResourceGroupName "<myResourceGroup>" -VMName "<myVM>"
$vm.Extensions | select Publisher, VirtualMachineExtensionType, TypeHandlerVersion

تنتج عن هذا الأمر مخرجات مشابهة للمثال التالي:

Publisher             VirtualMachineExtensionType          TypeHandlerVersion
---------             ---------------------------          ------------------
Microsoft.Compute     CustomScriptExtension                1.9

تحديثات العميل

يحتوي Azure VM Agent على تعليمات برمجية لمعالجة الملحقات فقط. تعد التعليمات البرمجية الخاصة بتوفير Windows منفصلة. يمكنك إزالة تثبيت Azure VM Agent. لا يمكنك تعطيل التحديث التلقائي لـ Azure VM Agent.

التعليمات البرمجية لمعالجة الملحقات مسؤولة عن المهام التالية:

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

للتحقق من الإصدار الذي تقوم بتشغيله، راجع الكشف عن عامل Azure VM.

تحديثات الملحقات

عند توفر تحديث ملحق وتمكين التحديثات التلقائية، إذا تغير نموذج الجهاز الظاهري، يقوم عامل Azure VM بتنزيل الملحق وترقيته.

تحديثات الملحق التلقائي إما ثانوية وإما تتطلب إصلاحاً عاجلاً. يمكنك الاشتراك في التحديثات الطفيفة أو إلغاء الاشتراك فيها عند توفير الملحق. يوضح المثال التالي كيفية ترقية الإصدارات الثانوية تلقائيا في قالب ARM باستخدام المعلمة "autoUpgradeMinorVersion": true, :

    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ]
    },

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

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

كيفية تحديد تحديثات الإضافات

هناك بعض الطرق التي يمكنك من خلالها تحديد التحديثات لملحق.

تحديد ما إذا كان قد تم تعيين الملحق باستخدام autoUpgradeMinorVersion على جهاز ظاهري

يمكنك عرض نموذج الجهاز الظاهري لتحديد ما إذا كان الملحق مزودا بالمعلمة autoUpgradeMinorVersion . للتحقق من نموذج الجهاز الظاهري، استخدم الأمر Get-AzVm وقم بتوفير مجموعة الموارد واسم الجهاز الظاهري كما يلي:

 $vm = Get-AzVm -ResourceGroupName "myResourceGroup" -VMName "myVM"
 $vm.Extensions

يظهر إخراج المثال التالي تعيين المعلمة autoUpgradeMinorVersion إلى true:

ForceUpdateTag              :
Publisher                   : Microsoft.Compute
VirtualMachineExtensionType : CustomScriptExtension
TypeHandlerVersion          : 1.9
AutoUpgradeMinorVersion     : True

تحديد وقت حدوث حدث AutoUpgradeMinorVersion

لمعرفة وقت حدوث تحديث للملحق، يمكنك مراجعة سجلات العامل على الجهاز الظاهري في C:\WindowsAzure\Logs\WaAppAgent.log.

يوضح المثال التالي الجهاز الظاهري مع Microsoft.Compute.CustomScriptExtension تثبيت الإصدار 1.8 ، وإصلاح عاجل متوفر للإصدار 1.9.

[INFO]  Getting plugin locations for plugin 'Microsoft.Compute.CustomScriptExtension'. Current Version: '1.8', Requested Version: '1.9'
[INFO]  Auto-Upgrade mode. Highest public version for plugin 'Microsoft.Compute.CustomScriptExtension' with requested version: '1.9', is: '1.9'

أذونات العامل

لتنفيذ مهامه، يحتاج عامل Azure VM إلى التشغيل كنظام محلي.

استِكشاف ملحقات VM وإصلاحها

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

تنطبق إجراءات استكشاف الأخطاء وإصلاحها التالية على جميع ملحقات الجهاز الظاهري:

  • للتحقق من Azure VM Agent Log، انظر إلى النشاط عندما كانت إضافتك تتوفر في C:\WindowsAzure\Logs\WaAppAgent.log.

  • تحقق من سجلات الملحقات لمزيد من التفاصيل في C:\WindowsAzure\Logs\Plugins<extensionName>.

  • تحقق من أقسام استكشاف الأخطاء وإصلاحها في الوثائق الخاصة بالملحقات بحثاً عن رموز الخطأ، والمشكلات المعروفة، والمعلومات الأخرى الخاصة بالملحقات.

  • ألقِ نظرة على سجلات النظام. تحقق من وجود عمليات أخرى قد تتداخل مع الملحق، مثل التثبيت طويل الأمد لتطبيق آخر يتطلب وصولاً حصرياً إلى مدير الحزمة.

  • في الجهاز الظاهري، إذا كان هناك ملحق موجود بحالة توفير فاشلة، يفشل أي ملحق جديد آخر في التثبيت.

الأسباب الشائعة لفشل التمديد

فيما يلي بعض الأسباب الشائعة لفشل الملحق:

  • يتم تشغيل الملحقات لمدة 20 دقيقة. (ويُستثنى من هذا البرنامج النصي المخصص، وChef، وDSC، الذي يتم تشغيله لمدة 90 دقيقة). وإذا تجاوزت عملية النشر الخاصة بك هذا الوقت، فسيتم تمييزه بأن وقته قد انتهى. يمكن أن يكون سبب هذه المشكلة هو الأجهزة الظاهرية ذات الموارد المنخفضة، أو أن تكوينات الجهاز الظاهري الأخرى أو مهام بدء التشغيل تستهلك كميات كبيرة من الموارد بينما يحاول الملحق توفيرها.

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

  • يعد الوصول إلى مدير الحزمة حصرياً. في بعض الحالات، قد يتعارض تكوين الجهاز الظاهري طويل الأمد وتثبيت الملحقات؛ لأن كليهما يحتاج إلى وصول حصري إلى مدير الحزمة.

عرض حالة الملحق

بعد تشغيل ملحق الجهاز الظاهري مقابل جهاز ظاهري، استخدم الأمر Get-AzVM لإرجاع حالة الملحق. Substatuses[0] تظهر النتيجة نجاح توفير الملحق، ما يعني أنه تم توزيعه بنجاح على الجهاز الظاهري. إذا رأيت Substatuses[1] النتيجة، ففشل تنفيذ الملحق داخل الجهاز الظاهري.

Get-AzVM -ResourceGroupName "myResourceGroup" -VMName "myVM" -Status

يتشابه الإخراج مع المثال التالي:

Extensions[0]           :
  Name                  : CustomScriptExtension
  Type                  : Microsoft.Compute.CustomScriptExtension
  TypeHandlerVersion    : 1.9
  Substatuses[0]        :
    Code                : ComponentStatus/StdOut/succeeded
    Level               : Info
    DisplayStatus       : Provisioning succeeded
    Message             : Windows PowerShell \nCopyright (C) Microsoft Corporation. All rights reserved.\n
  Substatuses[1]        :
    Code                : ComponentStatus/StdErr/succeeded
    Level               : Info
    DisplayStatus       : Provisioning succeeded
    Message             : The argument 'cseTest%20Scriptparam1.ps1' to the -File parameter does not exist. Provide the path to an existing '.ps1' file as an argument to the

-File parameter.
  Statuses[0]           :
    Code                : ProvisioningState/failed/-196608
    Level               : Error
    DisplayStatus       : Provisioning failed
    Message             : Finished executing command

يمكنك أيضاً العثور على حالة تنفيذ الملحق في مدخل Azure. حدد الجهاز الظاهري، وحدد "Extensions"، ثم حدد الملحق المطلوب.

إعادة تشغيل ملحق VM

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

Remove-AzVMExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myExtensionName"

يمكنك أيضا إزالة ملحق في مدخل Microsoft Azure. حدد جهازا ظاهريا، وحدد Extensions، ثم حدد الملحق المطلوب. حدد إلغاء تثبيت.

مرجع ملحق VM شائع

يوفر الجدول التالي بعض المراجع الشائعة لملحقات الجهاز الظاهري.

اسم الملحق ‏‏الوصف
ملحق البرنامج النصي المخصص ل Windows قم بتشغيل البرامج النصية مقابل جهاز Azure الظاهري.
ملحق DSC لـ Windows قم بتطبيق تكوينات الحالة المطلوبة لـ PowerShell على جهاز ظاهري.
ملحق تشخيصات Azure قم بإدارة Azure Diagnostics.
ملحق VMAccess قم بإدارة المستخدمين وبيانات الاعتماد.

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

لمزيد من المعلومات حول ملحقات الأجهزة الظاهرية، راجع Azure virtual machine extensions and features.