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

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

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

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

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

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

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

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

عامل Azure Linux

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

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

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

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

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

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

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

هام

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

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

لإعادة توجيه طلبات حركة مرور الوكيل، يتمتع Azure Linux Agent بدعم الخادم الوكيل. ومع ذلك، لا يطبق دعم الخادم الوكيل هذا ملحقات. يجب تكوين كل ملحق فردي للعمل مع وكيل.

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

يتوفر العديد من الملحقات المختلفة للجهاز الظاهري للاستخدام مع أجهزة Azure VM. للاطلاع على قائمة كاملة، استخدم قائمة صور امتداد az vm. يسرد المثال التالي جميع الإضافات المتوفرة في موقع Westus:

az vm extension image list --location westus --output table

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

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

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

Azure CLI

يمكنك تشغيل ملحقات أجهزة Azure الظاهرية مقابل جهاز ظاهري موجود باستخدام الأمر az vm extension set. يقوم المثال التالي بتشغيل ملحق البرنامج النصي المخصص مقابل جهاز ظاهري يسمى myVM في مجموعة موارد تسمى myResourceGroup. استبدل مثال اسم مجموعة الموارد واسم الجهاز الظاهري والبرنامج النصي لتشغيله (https://raw.githubusercontent.com/me/project/hello.sh) بمعلوماتك الخاصة.

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name customScript \
  --publisher Microsoft.Azure.Extensions \
  --settings '{"fileUris": ["https://raw.githubusercontent.com/me/project/hello.sh"],"commandToExecute": "./hello.sh"}'

عند تشغيل الملحق بشكل صحيح، يكون الإخراج مشابها للمثال التالي:

info:    Executing command vm extension set
+ Looking up the VM "myVM"
+ Installing extension "CustomScript", VM: "mvVM"
info:    vm extension set command OK

Azure PowerShell

يمكنك تشغيل ملحقات Azure VM مقابل جهاز ظاهري موجود باستخدام الأمر Set-AzVMExtension. يقوم المثال التالي بتشغيل ملحق البرنامج النصي المخصص مقابل جهاز ظاهري يسمى myVM في مجموعة موارد تسمى myResourceGroup. استبدل مثال اسم مجموعة الموارد واسم الجهاز الظاهري والبرنامج النصي لتشغيله (https://raw.githubusercontent.com/me/project/hello.sh) بمعلوماتك الخاصة.

$Params = @{
    ResourceGroupName  = 'myResourceGroup'
    VMName             = 'myVM'
    Name               = 'CustomScript'
    Publisher          = 'Microsoft.Azure.Extensions'
    ExtensionType      = 'CustomScript'
    TypeHandlerVersion = '2.1'
    Settings          = @{fileUris = @('https://raw.githubusercontent.com/me/project/hello.sh'); commandToExecute = './hello.sh'}
}
Set-AzVMExtension @Params

عند تشغيل الملحق بشكل صحيح، يكون الإخراج مشابها للمثال التالي:

RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
                         True         OK OK

مدخل Azure

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

توضح الصورة التالية تثبيت ملحق البرنامج النصي المخصص لنظام التشغيل Linux من مدخل Microsoft Azure:

Screenshot of the dialog for installing the Custom Script extension for Linux.

قوالب 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/', concat(variables('vmName'),copyindex()))]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.1",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"
        ]
    },
    "protectedSettings": {
        "commandToExecute": "[concat('sudo sh config-music.sh ',variables('musicStoreSqlName'), ' ', parameters('adminUsername'), ' ', parameters('sqlAdminPassword'))]"
    }
    }
}

لمزيد من المعلومات حول إنشاء قوالب ARM، راجع Virtual machines in an Azure Resource Manager template.

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

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

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

{
  "apiVersion": "2015-06-15",
  "type": "extensions",
  "name": "config-app",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', concat(variables('vmName'),copyindex()))]"
  ],
  "tags": {
    "displayName": "config-app"
  },
  "properties": {
    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.1",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"
      ],
      "commandToExecute": "[concat('sudo sh config-music.sh ',variables('musicStoreSqlName'), ' ', parameters('adminUsername'), ' ', parameters('sqlAdminPassword'))]"
    }
  }
}

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

{
  "apiVersion": "2015-06-15",
  "type": "extensions",
  "name": "config-app",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', concat(variables('vmName'),copyindex()))]"
  ],
  "tags": {
    "displayName": "config-app"
  },
  "properties": {
    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.1",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"
      ]
    },
    "protectedSettings": {
      "commandToExecute": "[concat('sudo sh config-music.sh ',variables('musicStoreSqlName'), ' ', parameters('adminUsername'), ' ', parameters('sqlAdminPassword'))]"
    }
  }
}

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

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

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

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

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

إشعار

قد تتطلب بعض التحديثات قواعد جدار حماية إضافية. راجع Network access.

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

يحتوي Linux VM Agent على رمز عميل التوفير والتعليمات البرمجيةلمعالجة الملحقات في حزمة واحدة. لا يمكن فصلهما.

يمكنك تعطيل عامل إدارة الحسابات عندما تريد التوفير على Azure باستخدام cloud-init.

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

رمز معالجة الإضافة مسؤول عن:

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

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

لا يمكن تحديث العملية الأصل تلقائيًا. يمكن تحديث الأصل فقط عن طريق تحديث حزمة توزيع.

للتحقق من الإصدار الذي تقوم بتشغيله، تحقق من waagent كما يلي:

waagent --version

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

WALinuxAgent-2.2.45 running on <Linux Distro>
Python: 3.6.9
Goal state agent: 2.7.1.0

في إخراج المثال السابق، يكون الأصل (أو الإصدار الذي تم نشره من الحزمة) هو WALinuxAgent-2.2.45. Goal state agent القيمة هي إصدار التحديث التلقائي.

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

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

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

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

    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.1",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"
        ]
    },

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

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

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

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

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

az vm show --resource-group myResourceGroup --name myVM

يوضح إخراج المثال التالي أنه قد تم تعيين autoUpgradeMinorVersion إلى true:

  "resources": [
    {
      "autoUpgradeMinorVersion": true,
      "forceUpdateTag": null,
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM/extensions/customScript",

تحديد وقت حدوث حدث autoUpgradeMinorVersion

لمعرفة وقت حدوث تحديث للإضافة، راجع سجلات العامل على الجهاز الظاهري في / var/log/waagent.log.

في المثال التالي، تم تثبيت الجهاز الظاهري Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9025. كان الإصلاح العاجل متوفرا لـMicrosoft.OSTCExtensions.LinuxDiagnostic-2.3.9027.

INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Expected handler state: enabled
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Decide which version to use
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Use version: 2.3.9027
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Current handler state is: NotInstalled
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Download extension package
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Unpack extension package
INFO Event: name=Microsoft.OSTCExtensions.LinuxDiagnostic, op=Download, message=Download succeeded
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Initialize extension directory
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Update settings file: 0.settings
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9025] Disable extension.
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9025] Launch command:diagnostic.py -disable
...
INFO Event: name=Microsoft.OSTCExtensions.LinuxDiagnostic, op=Disable, message=Launch command succeeded: diagnostic.py -disable
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Update extension.
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Launch command:diagnostic.py -update
2017/08/14 20:21:57 LinuxAzureDiagnostic started to handle.

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

لأداء مهامه، يحتاج العامل إلى التشغيل كجذر.

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

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

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

  • للتحقق من سجل وكيل Azure Linux، انظر إلى النشاط عندما يتم توفير الإضافة في /var/log/waagent.log.

  • تحقق من سجلات الملحقات لمزيد من التفاصيل في / var/log/azure/<extensionName>.

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

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

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

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

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

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

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

بعد تشغيل ملحق الجهاز الظاهري مقابل جهاز ظاهري، استخدم az vm get-instance-view لإرجاع حالة الملحق كما يلي:

az vm get-instance-view \
    --resource-group myResourceGroup \
    --name myVM \
    --query "instanceView.extensions"

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

  {
    "name": "customScript",
    "statuses": [
      {
        "code": "ProvisioningState/failed/0",
        "displayStatus": "Provisioning failed",
        "level": "Error",
        "message": "Enable failed: failed to execute command: command terminated with exit status=127\n[stdout]\n\n[stderr]\n/bin/sh: 1: ech: not found\n",
        "time": null
      }
    ],
    "substatuses": null,
    "type": "Microsoft.Azure.Extensions.CustomScript",
    "typeHandlerVersion": "2.1.6"
  }

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

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

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

لإزالة ملحق، استخدم az vm extension delete كما يلي:

az vm extension delete \
    --resource-group myResourceGroup \
    --vm-name myVM \
    --name customScript

يمكنك أيضاً إزالة ملحق في مدخل Azure:

  1. حدد جهازاً ظاهرياً.
  2. حدد Extensions.
  3. حدد ملحقاً.
  4. حدد إلغاء تثبيت.

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

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

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

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