البرنامج التعليمي: توزيع ملحقات الجهاز الظاهري باستخدام قوالب ARM
التعرف على كيفية استخدام ملحقات جهاز Azure الظاهري لتنفيذ مهام التكوين والتشغيل التلقائي لما بعد التوزيع على أجهزة Azure الظاهرية. تتوفر العديد من الملحقات المختلفة للجهاز الظاهري للاستخدام مع أجهزة Azure الظاهرية. في هذا البرنامج التعليمي، يمكنك توزيع ملحق برنامج نصي مخصص من قالب Azure Resource Manager (قالب ARM) لتشغيل برنامج PowerShell النصي على جهاز ظاهري يعمل بنظام Windows. يثبت البرنامج النصي خادم ويب على الجهاز الظاهري.
يشمل البرنامج التعليمي المهام التالية:
- إعداد برنامج PowerShell نصي
- افتح قالب التشغيل السريع
- تحرير القالب
- نشر القالب
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
المتطلبات الأساسية
لإكمال هذه المقالة، تحتاج إلى الآتي:
Visual Studio Code مع ملحق Resource Manager Tools. راجع بدء التشغيل السريع: إنشاء قوالب ARM باستخدام التعليمة البرمجية Visual Studio.
لزيادة الأمان، استخدم كلمة مرور أُنشِئت لحساب مسؤول الجهاز الظاهري. يمكنك استخدام Azure Cloud Shell لتشغيل الأمر التالي في PowerShell أو Bash:
openssl rand -base64 32
لمعرفة المزيد، قم بتشغيل
man openssl rand
لفتح الصفحة اليدوية.تم تصميم Azure Key Vault لحماية مفاتيح التشفير وغيرها من الأسرار. للحصول على مزيدٍ من المعلومات، راجع البرنامج التعليمي: دمج Azure Key Vault في توزيع قوالب ARM. كما نوصي بتحديث كلمة المرور كل ثلاثة أشهر.
إعداد برنامج PowerShell نصي
يمكنك استخدام برنامج PowerShell نصي مضمن أو ملف برنامج نصي. يوضح هذا البرنامج التعليمي كيفية استخدام ملف البرنامج النصي. يجري مشاركة برنامج PowerShell النصي مع المحتوى التالي من GitHub:
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
إذا اخترت نشر الملف على موقعك الخاص، فبادر بتحديث العنصر fileUri
في القالب لاحقاً في البرنامج التعليمي.
افتح قالب التشغيل السريع
قوالب التشغيل السريع Azure عبارة عن مستودع لقوالب ARM. بدلاً من إنشاء قالب من البداية، يمكنك العثور على نموذج قالب وتخصيصه. يُسمى القالب المستخدم في هذا البرنامج التعليمي توزيع جهاز ظاهري بسيط يعمل بنظام Windows.
في التعليمة البرمجية Visual Studio، حدد File>Open File.
في المربع File Name، الصق عنوان URL التالي:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
حدد Open لفتح الملف. يحدد القالب خمسة موارد:
Microsoft.Compute/virtualMachines.
من المفيد استيعاب أساسيات القالب قبل تخصيصه.
احفظ نسخة من الملف في حاسوبك المحلي باسم azuredeploy.json عن طريق تحديد File>Save As.
تحرير القالب
إضافة مورد ملحق الجهاز الظاهري إلى القالب الموجود مع المحتوى التالي:
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2021-04-01",
"name": "[format('{0}/{1}', variables('vmName'), 'InstallWebServer')]",
"location": "[parameters('location')]",
"dependsOn": [
"[format('Microsoft.Compute/virtualMachines/{0}',variables('vmName'))]"
],
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.7",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/tutorial-vm-extension/installWebServer.ps1"
],
"commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File installWebServer.ps1"
}
}
}
لمزيد من المعلومات عن تعريف المورد هذا، راجع مرجع الملحق. ما يلي عبارة عن بعض العناصر الهامة:
name
: لأن مورد الملحق مورد تابع لعنصر الجهاز الظاهري، يجب أن يكون للاسم بادئة اسم الجهاز الظاهري. راجع تعيين اسم ونوع الموارد التابعة.dependsOn
: إنشاء مورد الملحق بعد أن تنشئ الجهاز الظاهري.fileUris
: المواقع التي يجري تخزين ملفات البرنامج النصي فيها. إذا اخترت عدم استخدام الموقع المتوفر، فستحتاج إلى تحديث القيم.commandToExecute
: يستدعي هذا الأمر البرنامج النصي.
لاستخدام برنامج نصي مضمن، بادر بإزالة fileUris
، وتحديث commandToExecute
إلى:
powershell.exe Install-WindowsFeature -name Web-Server -IncludeManagementTools && powershell.exe remove-item 'C:\\inetpub\\wwwroot\\iisstart.htm' && powershell.exe Add-Content -Path 'C:\\inetpub\\wwwroot\\iisstart.htm' -Value $('Hello World from ' + $env:computername)
هذا البرنامج النصي المضمن أيضاً يحدث محتوى iisstart.html.
يجب أيضاً فتح منفذ HTTP بحيث يمكنك الوصول إلى خادم ويب.
ابحث عن
securityRules
في القالب.إضافة القاعدة التالية بجوار default-allow-3389.
{ "name": "AllowHTTPInBound", "properties": { "priority": 1010, "access": "Allow", "direction": "Inbound", "destinationPortRange": "80", "protocol": "Tcp", "sourcePortRange": "*", "sourceAddressPrefix": "*", "destinationAddressPrefix": "*" } }
نشر القالب
لإجراء التوزيع، راجع القسم Deploy the template من البرنامج التعليمي: إنشاء قوالب ARM مع الموارد التابعة. نوصي باستخدام كلمة مرور أُنشِئت لحساب مسؤول الجهاز الظاهري. راجع قسم Prerequisites من هذه المقالة.
من Cloud Shell، شغل الأمر التالي لاسترداد عنوان IP العام للجهاز الظاهري:
(Get-AzPublicIpAddress -ResourceGroupName $resourceGroupName).IpAddress
الصق عنوان IP في مستعرض ويب. تفتح صفحة الترحيب الافتراضية الخاصة بخدمات معلومات الإنترنت (IIS):
تنظيف الموارد
عندما لا تعد بحاجة إلى موارد Azure التي وزعتها، بادر بتنظيفها عن طريق حذف مجموعة الموارد.
- في مدخل Azure، في الجزء الأيسر، حدد Resource group.
- أدخل اسم مجموعة الموارد في الحقل Filter by name.
- حدد اسم مجموعة الموارد. تُعرض ستة موارد في مجموعة الموارد.
- حدد Delete resource group في القائمة العلوية.
الخطوات التالية
في هذا البرنامج التعليمي، وزعت جهاز ظاهري وملحق جهاز ظاهري. ثبت الملحق خادم ويب IIS على الجهاز الظاهري. لمعرفة كيفية استخدام ملحق قاعدة بيانات Azure SQL لاستيراد ملف BACPAC، راجع: