نشر ملحق البرنامج النصي المخصص على الأجهزة الظاهرية التي تعمل على جهاز Azure Stack Edge Pro
ينطبق على:Azure Stack Edge Pro - GPU
Azure Stack Edge Pro 2
Azure Stack Edge Pro R
Azure Stack Edge Mini R
يقوم ملحق البرنامج النصي المخصص بتنزيل البرامج النصية أو الأوامر وتشغيلها على الأجهزة الظاهرية التي تعمل على أجهزة Azure Stack Edge Pro. توضح هذه المقالة بالتفصيل كيفية تثبيت ملحق البرنامج النصي المخصص وتشغيله باستخدام قالب Azure Resource Manager.
حول ملحق البرنامج النصي المخصص
يعد ملحق البرنامج النصي المخصص مفيدا لتكوين ما بعد التوزيع أو تثبيت البرامج أو أي مهمة تكوين/إدارة أخرى. يمكنك تنزيل البرامج النصية من Azure Storage أو موقع إنترنت آخر يمكن الوصول إليه، أو يمكنك توفير البرامج النصية أو الأوامر لوقت تشغيل الملحق.
يتكامل ملحق البرنامج النصي المخصص مع قوالب Azure Resource Manager. يمكنك أيضا تشغيله باستخدام Azure CLI أو PowerShell أو واجهة برمجة تطبيقات REST لأجهزة Azure الظاهرية.
نظام التشغيل لملحق البرنامج النصي المخصص
نظام التشغيل المدعوم لملحق البرنامج النصي المخصص على Windows
سيتم تشغيل ملحق البرنامج النصي المخصص ل Windows على أنظمة التشغيل التالية. قد تعمل الإصدارات الأخرى ولكن لم يتم اختبارها داخليا على الأجهزة الظاهرية التي تعمل على أجهزة Azure Stack Edge Pro.
التوزيع | الإصدار |
---|---|
Windows Server 2019 | الأساسي |
Windows Server 2016 | الأساسي |
نظام التشغيل المدعوم لملحق البرنامج النصي المخصص على Linux
سيتم تشغيل ملحق البرنامج النصي المخصص ل Linux على أنظمة التشغيل التالية. قد تعمل الإصدارات الأخرى ولكن لم يتم اختبارها داخليا على الأجهزة الظاهرية التي تعمل على أجهزة Azure Stack Edge Pro.
التوزيع | الإصدار |
---|---|
Linux (Ubuntu) | 18.04 LTS |
Linux: Red Hat Enterprise Linux | 7.4, 7.5, 7.7 |
المتطلبات الأساسية
قم بتنزيل قوالب الجهاز الظاهري وملفات المعلمات إلى جهاز العميل الخاص بك. قم بإلغاء ضغط التنزيل في دليل ستستخدمه كدليل عمل.
يجب أن يكون لديك جهاز ظاهري تم إنشاؤه ونشره على جهازك. لإنشاء أجهزة ظاهرية، اتبع جميع الخطوات في نشر الجهاز الظاهري على Azure Stack Edge Pro باستخدام القوالب.
إذا كنت بحاجة إلى تنزيل برنامج نصي مثل من GitHub أو Azure Storage خارجيا، أثناء تكوين شبكة الحوسبة، قم بتمكين المنفذ المتصل بالإنترنت للحوسبة. يسمح لك هذا بتنزيل البرنامج النصي.
في المثال التالي، تم توصيل المنفذ 2 بالإنترنت وتم استخدامه لتمكين شبكة الحوسبة. إذا حددت أن Kubernetes غير مطلوبة في الخطوة السابقة، يمكنك تخطي IP عقدة Kubernetes وتعيين IP للخدمة الخارجية.
تثبيت ملحق البرنامج النصي المخصص
اعتمادا على نظام التشغيل للجهاز الظاهري الخاص بك، يمكنك تثبيت ملحق البرنامج النصي المخصص لنظام التشغيل Windows أو لنظام التشغيل Linux.
ملحق البرنامج النصي المخصص لـ Windows
لنشر ملحق البرنامج النصي المخصص لنظام التشغيل Windows لجهاز ظاهري يعمل على جهازك، قم بتحرير addCSExtWindowsVM.parameters.json
ملف المعلمات ثم انشر القالب addCSextensiontoVM.json
.
تحرير ملف المعلمات
يأخذ الملف addCSExtWindowsVM.parameters.json
المعلمات التالية:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "<Name of VM>"
},
"extensionName": {
"value": "<Name of extension>"
},
"publisher": {
"value": "Microsoft.Compute"
},
"type": {
"value": "CustomScriptExtension"
},
"typeHandlerVersion": {
"value": "1.10"
},
"settings": {
"value": {
"commandToExecute" : "<Command to execute>"
}
}
}
}
قم بتوفير اسم الجهاز الظاهري واسم الملحق والأمر الذي تريد تنفيذه.
فيما يلي نموذج ملف المعلمة الذي تم استخدامه في هذه المقالة.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "VM5"
},
"extensionName": {
"value": "CustomScriptExtension"
},
"publisher": {
"value": "Microsoft.Compute"
},
"type": {
"value": "CustomScriptExtension"
},
"typeHandlerVersion": {
"value": "1.10"
},
"settings": {
"value": {
"commandToExecute" : "md C:\\Users\\Public\\Documents\\test"
}
}
}
}
نشر القالب
انشر القالب addCSextensiontoVM.json
. ينشر هذا القالب الملحق إلى جهاز ظاهري موجود. شغّل الأمر التالي:
$templateFile = "<Path to addCSExtensiontoVM.json file>"
$templateParameterFile = "<Path to addCSExtWindowsVM.parameters.json file>"
$RGName = "<Resource group name>"
New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "<Deployment name>"
إشعار
نشر الملحق هو مهمة طويلة الأمد ويستغرق حوالي 10 دقائق لإكمالها.
إليك عينة من المخرجات:
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\ExtensionTemplates\addCSExtensiontoVM.json"
PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\ExtensionTemplates\addCSExtWindowsVM.parameters.json"
PS C:\WINDOWS\system32> $RGName = "myasegpuvm1"
PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment7"
DeploymentName : deployment7
ResourceGroupName : myasegpuvm1
ProvisioningState : Succeeded
Timestamp : 12/17/2020 10:07:44 PM
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
vmName String VM5
extensionName String CustomScriptExtension
publisher String Microsoft.Compute
type String CustomScriptExtension
typeHandlerVersion String 1.10
settings Object {
"commandToExecute": "md C:\\Users\\Public\\Documents\\test"
}
Outputs :
DeploymentDebugLogLevel :
PS C:\WINDOWS\system32>
تعقب التوزيع
للتحقق من حالة نشر الملحقات لجهاز ظاهري معين، قم بتشغيل الأمر التالي:
Get-AzureRmVMExtension -ResourceGroupName <Name of resource group> -VMName <Name of VM> -Name <Name of the extension>
إليك عينة من المخرجات:
PS C:\WINDOWS\system32> Get-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM5 -Name CustomScriptExtension
ResourceGroupName : myasegpuvm1
VMName : VM5
Name : CustomScriptExtension
Location : dbelocal
Etag : null
Publisher : Microsoft.Compute
ExtensionType : CustomScriptExtension
TypeHandlerVersion : 1.10
Id : /subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/myasegpuvm1/providers/Microsoft.Compute/virtualMachines/VM5/extensions/CustomScriptExtension
PublicSettings : {
"commandToExecute": "md C:\\Users\\Public\\Documents\\test"
}
ProtectedSettings :
ProvisioningState : Creating
Statuses :
SubStatuses :
AutoUpgradeMinorVersion : True
ForceUpdateTag :
PS C:\WINDOWS\system32>
إشعار
عند اكتمال النشر، ProvisioningState
يتغير إلى Succeeded
.
يتم تسجيل إخراج الملحق إلى الملفات الموجودة ضمن المجلد التالي على الجهاز الظاهري الهدف.
C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension
يتم تنزيل الملفات المحددة في المجلد التالي على الجهاز الظاهري الهدف.
C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.*\Downloads\<n>
حيث n هو عدد صحيح عشري، والذي قد يتغير بين عمليات تنفيذ الملحق. تطابق القيمة 1.* القيمة الفعلية والحالية typeHandlerVersion
للملحق. على سبيل المثال، الدليل الفعلي في هذا المثيل كان C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.9\Downloads\0
.
في هذه الحالة، كان الأمر الذي يجب تنفيذه للملحق المخصص: md C:\\Users\\Public\\Documents\\test
. عند تثبيت الملحق بنجاح، يمكنك التحقق من إنشاء الدليل في الجهاز الظاهري في المسار المحدد في الأمر.
ملحق البرنامج النصي المخصص ل Linux
لنشر ملحق البرنامج النصي المخصص لنظام التشغيل Windows لجهاز ظاهري يعمل على جهازك، قم بتحرير addCSExtLinuxVM.parameters.json
ملف المعلمات ثم انشر القالب addCSExtensiontoVM.json
.
تحرير ملف المعلمات
يأخذ الملف addCSExtLinuxVM.parameters.json
المعلمات التالية:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "<Name of your VM>"
},
"extensionName": {
"value": "<Name of your extension>"
},
"publisher": {
"value": "Microsoft.Azure.Extensions"
},
"type": {
"value": "CustomScript"
},
"typeHandlerVersion": {
"value": "2.0"
},
"settings": {
"value": {
"commandToExecute" : "<Command to execute>"
}
}
}
}
قم بتوفير اسم الجهاز الظاهري واسم الملحق والأمر الذي تريد تنفيذه.
فيما يلي نموذج ملف معلمة تم استخدامه في هذه المقالة:
$templateFile = "<Path to addCSExtensionToVM.json file>"
$templateParameterFile = "<Path to addCSExtLinuxVM.parameters.json file>"
$RGName = "<Resource group name>"
New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "<Deployment name>"
إشعار
نشر الملحق هو مهمة طويلة الأمد ويستغرق حوالي 10 دقائق لإكمالها.
إليك عينة من المخرجات:
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\ExtensionTemplates\addCSExtensionToVM.json"
PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\ExtensionTemplates\addCSExtLinuxVM.parameters.json"
PS C:\WINDOWS\system32> $RGName = "myasegpuvm1"
PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment99"
DeploymentName : deployment99
ResourceGroupName : myasegpuvm1
ProvisioningState : Succeeded
Timestamp : 12/18/2020 1:55:23 AM
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
vmName String VM6
extensionName String LinuxCustomScriptExtension
publisher String Microsoft.Azure.Extensions
type String CustomScript
typeHandlerVersion String 2.0
settings Object {
"commandToExecute": "sudo echo 'some text' >> /home/Administrator/file2.txt"
}
Outputs :
DeploymentDebugLogLevel :
PS C:\WINDOWS\system32>
commandToExecute
تم تعيين لإنشاء ملف file2.txt
في /home/Administrator
الدليل ومحتويات الملف هي some text
. في هذه الحالة، يمكنك التحقق من إنشاء الملف في المسار المحدد.
Administrator@VM6:~$ dir
file2.txt
Administrator@VM6:~$ cat file2.txt
some text
Administrator@VM6:
تعقب حالة النشر
نشر القالب هو مهمة طويلة الأمد. للتحقق من حالة نشر الملحقات لجهاز ظاهري معين، افتح جلسة PowerShell أخرى (قم بتشغيلها كمسؤول). شغّل الأمر التالي:
Get-AzureRmVMExtension -ResourceGroupName myResourceGroup -VMName <VM Name> -Name <Extension Name>
إليك عينة من المخرجات:
PS C:\WINDOWS\system32> Get-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM5 -Name CustomScriptExtension
ResourceGroupName : myasegpuvm1
VMName : VM5
Name : CustomScriptExtension
Location : dbelocal
Etag : null
Publisher : Microsoft.Compute
ExtensionType : CustomScriptExtension
TypeHandlerVersion : 1.10
Id : /subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/myasegpuvm1/providers/Microsoft.Compute/virtualMachines/VM5/extensions/CustomScriptExtension
PublicSettings : {
"commandToExecute": "md C:\\Users\\Public\\Documents\\test"
}
ProtectedSettings :
ProvisioningState : Creating
Statuses :
SubStatuses :
AutoUpgradeMinorVersion : True
ForceUpdateTag :
PS C:\WINDOWS\system32>
إشعار
عند اكتمال النشر، ProvisioningState
يتغير إلى Succeeded
.
يتم تسجيل إخراج تنفيذ الملحق إلى الملف التالي: /var/lib/waagent/custom-script/download/0/
.
إزالة ملحق البرنامج النصي المخصص
لإزالة ملحق البرنامج النصي المخصص، استخدم الأمر التالي:
Remove-AzureRmVMExtension -ResourceGroupName <Resource group name> -VMName <VM name> -Name <Extension name>
إليك عينة من المخرجات:
PS C:\WINDOWS\system32> Remove-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM6 -Name LinuxCustomScriptExtension
Virtual machine extension removal operation
This cmdlet will remove the specified virtual machine extension. Do you want to continue?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Yes
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK OK
الخطوات التالية
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ