البرنامج التعليمي: توزيع ملحقات الجهاز الظاهري باستخدام قوالب ARM

التعرف على كيفية استخدام ملحقات جهاز Azure الظاهري لتنفيذ مهام التكوين والتشغيل التلقائي لما بعد التوزيع على أجهزة Azure الظاهرية. تتوفر العديد من الملحقات المختلفة للجهاز الظاهري للاستخدام مع أجهزة Azure الظاهرية. في هذا البرنامج التعليمي، يمكنك توزيع ملحق برنامج نصي مخصص من قالب Azure Resource Manager (قالب ARM) لتشغيل برنامج PowerShell النصي على جهاز ظاهري يعمل بنظام Windows. يثبت البرنامج النصي خادم ويب على الجهاز الظاهري.

يشمل هذا البرنامج التعليمي المهام الآتية:

  • إعداد برنامج PowerShell نصي
  • فتح قالب بدء التشغيل السريع
  • تحرير القالب
  • نشر القالب

إذا لم يكن لديك اشتراك في Azure، فأنشئ free account قبل البدء.

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

لإكمال هذه المقالة، تحتاج إلى الآتي:

إعداد برنامج PowerShell نصي

يمكنك استخدام برنامج PowerShell نصي مضمن أو ملف برنامج نصي. يوضح هذا البرنامج التعليمي كيفية استخدام ملف البرنامج النصي. يجري مشاركة برنامج PowerShell النصي مع المحتوى التالي من GitHub:

Install-WindowsFeature -Name Web-Server -IncludeManagementTools

إذا اخترت نشر الملف على موقعك الخاص، فبادر بتحديث العنصر fileUriفي القالب لاحقاً في البرنامج التعليمي.

فتح قالب بدء التشغيل السريع

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

  1. في التعليمة البرمجية Visual Studio، حدد File>Open File.

  2. في المربع File Name، الصق عنوان URL التالي:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. حدد Open لفتح الملف. يحدد القالب خمسة موارد:

  4. احفظ نسخة من الملف في حاسوبك المحلي باسم 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 بحيث يمكنك الوصول إلى خادم ويب.

  1. ابحث عن securityRules في القالب.

  2. إضافة القاعدة التالية بجوار 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 التي وزعتها، بادر بتنظيفها عن طريق حذف مجموعة الموارد.

  1. في مدخل Azure، في الجزء الأيسر، حدد Resource group.
  2. أدخل اسم مجموعة الموارد في الحقل Filter by name.
  3. حدد اسم مجموعة الموارد. تُعرض ستة موارد في مجموعة الموارد.
  4. حدد Delete resource group في القائمة العلوية.

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

في هذا البرنامج التعليمي، وزعت جهاز ظاهري وملحق جهاز ظاهري. ثبت الملحق خادم ويب IIS على الجهاز الظاهري. لمعرفة كيفية استخدام ملحق قاعدة بيانات Azure SQL لاستيراد ملف BACPAC، راجع: