إنشاء بيئات Azure DevTest Labs من قوالب ARM

في هذه المقالة، ستتعلم كيفية إنشاء بيئات Azure DevTest Labs من قوالب Azure Resource Manager (ARM ). يمكنك استخدام بيئات DevTest Labs لتوفير مختبرات بسهولة ومتناسقة مع أجهزة ظاهرية متعددة (VMs) أو موارد النظام الأساسي كخدمة (PaaS). على سبيل المثال، لإنشاء معمل لتطبيق ويب متعدد المستويات أو مزرعة SharePoint.

تشترك الموارد في بيئة ما في دورة الحياة نفسها، ويمكنك إدارتها معا. يمكنك تتبع تكلفة بيئات المختبر وموارد PaaS، تمامًا كما تتعقب تكاليف الأجهزة الظاهرية للمختبر الفردي.

يمكنك تكوين Azure DevTest Labs لاستخدام قوالب ARM من مستودع Git عام أو خاص. تعرف على المزيد حول مستودعات القوالب للمختبرات.

رسم تخطيطي يوضح كيفية إنشاء بيئة باستخدام Azure DevTest Labs من قالب ARM في مستودع قالب عام أو مخصص.

إذا كنت ترغب في استخدام قالب ARM لإنشاء مورد Azure DevTest Labs، فشاهد التشغيل السريع: استخدام قالب ARM لإنشاء معمل في مختبرات DevTest.

القيود

ضع في اعتبارك هذه القيود عند إنشاء مختبرات من قوالب ARM في مختبرات DevTest:

  • لا ينطبق إيقاف التشغيل التلقائي للجهاز الظاهري على موارد PaaS.

  • لا يتم تقييم كافة نهج المختبر عند نشر قوالب ARM. تتضمن النهج التي لم يتم تقييمها: عدد الأجهزة الظاهرية لكل مستخدم مختبر، وعدد الأجهزة الظاهرية المتميزة لكل مستخدم، وعدد المكاتب المتميزة لكل مستخدم. على سبيل المثال، قد يقتصر نهج المختبر على خمسة أجهزة ظاهرية فقط لكل منهما. ومع ذلك، يمكن للمستخدم نشر قالب بيئة ARM الذي ينشئ عشرات الأجهزة الظاهرية.

إنشاء بيئات من القوالب

يمكنك إنشاء بيئة من مستودع القالب العام ل Azure DevTest Labs أو يمكنك إضافة مستودع قالب خاص إلى مختبرك.

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

لإنشاء بيئة من قالب:

  1. في مدخل Microsoft Azure، حدد مورد المختبر الخاص بك.

  2. في صفحة نظرة عامة على المختبر، حدد إضافة من شريط الأدوات العلوي.

  3. في الصفحة Choose a base، حدد قالب بيئة ARM لاستخدامه. تظهر قوالب البيئة المتوفرة أولاً في قائمة القواعد.

    لقطة شاشة تعرض قوالب البيئة العامة.

  4. في الشاشة إضافة ، أدخل اسم البيئة، واملأ حقول الإدخال الأخرى.

    يتم تعريف عدد حقول الإدخال ونوعها في قالب ARM. عند الضرورة، أدخل قيم حقول الإدخال التي يعرفها ملف القالب azuredeploy.parameters.json على أنها فارغة أو افتراضية.

    • بالنسبة إلى المعلماتsecure string، يمكنك استخدام البيانات السرية من Azure Key Vault. لمعرفة كيفية تخزين الأسرار في مخزن مفاتيح واستخدامها عند إنشاء موارد المختبر، راجع تخزين البيانات السرية في Azure Key Vault.

    • في ملفات قالب ARM، GEN-UNIQUEGEN-UNIQUE-[N]GEN-SSH-PUB-KEYتقوم قيم المعلمات و GEN-PASSWORD بإنشاء حقول إدخال فارغة للمستخدمين لإدخال قيم.

    لقطة شاشة تعرض جزء إضافة لبيئة SharePoint.

  5. حدد إضافة لإنشاء البيئة.

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

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

    لقطة شاشة تعرض قائمة الأجهزة الظاهرية ضمن بيئة.

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

    لقطة شاشة تعرض مجموعة الموارد مع جميع موارد البيئة.

  7. حدد بيئة الجهاز الظاهري لمشاهدة الإجراءات المتوفرة للجهاز الظاهري، مثل إدارة التكوين والجدول الزمني والنهج.

    لقطة شاشة توضح الإجراءات المتاحة للجهاز الظاهري الخاص بالبيئة.

مستودعات قالب البيئة

باستخدام Azure DevTest Labs، يمكنك إنشاء بيئات من قوالب ARM. يمكن أن تأتي قوالب ARM من مصدرين:

  • يحتوي Azure DevTest Labs على مستودع قالب ARM عام يتضمن قوالب البيئة التي تم تأليفها مسبقًا لـ Azure Web Apps، كتلة Azure Service Fabric، وتطوير مزارع SharePoint. تحتوي القوالب على الحد الأدنى من معلمات الإدخال، للحصول على تجربة بدء سلسة مع موارد PaaS. يمكنك استخدام قوالب البيئة العامة كما هي، أو تخصيصها لتناسب احتياجاتك.

  • يمكنك تخزين قوالب البيئة في مستودعات Git العامة أو الخاصة الخاصة بك، وتوصيل هذه المستودعات بالمختبر الخاص بك لجعل القوالب الخاصة بك متاحة لجميع مستخدمي المختبر.

تلميح

لاقتراح مراجعات أو إضافات إلى القوالب العامة، أرسل طلب سحب مقابل مستودع قالب GitHub العام مفتوح المصدر.

تكوين إعدادات البيئة العامة لمختبرك

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

بالإضافة إلى ذلك، يمكنك تحديد القوالب المتوفرة للمستخدمين لإنشاء بيئات منها.

تمكين البيئات العامة عند إنشاء مختبر

لتمكين الوصول إلى مستودع البيئة العامة لمختبر عند إنشاء مختبر:

  1. حدد علامة التبويب Basic الإعدادات عند إنشاء مورد DevTest Labs.

  2. حدد تشغيل في حقل البيئاتالعامة.

    لقطة شاشة توضح تمكين البيئات العامة لمعمل جديد.

تمكين أو تعطيل البيئات العامة للمختبرات الموجودة

بالنسبة للمختبرات الموجودة أو المختبرات التي تقوم بإنشائها باستخدام قالب ARM، قد لا يتم تمكين البيئات العامة. لتمكين أو تعطيل مستودع البيئة العامة للمختبرات الموجودة:

  1. في مدخل Microsoft Azure، حدد مورد المختبر الخاص بك.

  2. قم بتحديد Configuration and policies في التنقل الأيسر.

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

  4. حدد نعم أو لا لتمكين البيئات العامة لهذا المختبر، لتمكين أو تعطيل البيئات العامة للمختبر.

  5. حدد حفظ.

تحديد قوالب البيئة العامة المتوفرة

عند تمكين البيئات العامة، تتوفر جميع قوالب البيئة في المستودع لإنشاء بيئات. للسماح ببيئات محددة فقط للمختبر:

  1. في مدخل Microsoft Azure، حدد مورد المختبر الخاص بك.

  2. قم بتحديد Configuration and policies في التنقل الأيسر.

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

  4. قم بإلغاء تحديد بيئات معينة من القائمة لجعلها غير متوفرة لمستخدمي المختبر، ثم حدد حفظ.

    لقطة شاشة تعرض قائمة البيئات العامة للمختبر.

تكوين حقوق مستخدم البيئة

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

  1. في مدخل Microsoft Azure، حدد مورد المختبر الخاص بك.

  2. قم بتحديد Configuration and policies في التنقل الأيسر.

  3. حدد إعدادات المختبر في التنقل الأيمن.

  4. ضمن Environment access>Resource group user rights، حدد Contributor، ثم حدد Save.

    لقطة شاشة تعرض تكوين أذونات المساهمين في المختبر.

أتمتة إنشاء البيئة

إذا كنت بحاجة إلى إنشاء بيئات متعددة لسيناريوهات التطوير أو الاختبار، يمكنك أتمتة نشر البيئة باستخدام Azure PowerShell أو Azure CLI.

يمكنك استخدام الأمر Azure CLI az deployment group create لإنشاء بيئات. ولمزيد من المعلومات، اطلع على نشر الموارد باستخدام قوالب Resource Manager وAzure CLI.

يمكن لمالكي المختبر والمسؤولين استخدام Azure PowerShell لإنشاء الأجهزة الظاهرية والبيئات من قوالب ARM.

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

لأتمتة نشر قالب بيئة ARM باستخدام Azure PowerShell:

  1. افحص قالب بيئة ARM في مستودع Git، وأضف المستودع إلى المختبر.

  2. احفظ البرنامج النصي PowerShell التالي إلى الكمبيوتر الخاص بك كـ deployenv.ps1. يستدعي هذا البرنامج النصي قالب ARM لإنشاء البيئة في المختبر.

    #Requires -Module Az.Resources
    
    [CmdletBinding()]
    
    param (
    # ID of the Azure subscription for the lab
    [string] [Parameter(Mandatory=$true)] $SubscriptionId,
    
    # Name of the lab in which to create the environment
    [string] [Parameter(Mandatory=$true)] $LabName,
    
    # Name of the template repository connected to the lab
    [string] [Parameter(Mandatory=$true)] $RepositoryName,
    
    # Name of the template (folder name in the Git repository)
    [string] [Parameter(Mandatory=$true)] $TemplateName,
    
    # Name of the environment to create in the lab
    [string] [Parameter(Mandatory=$true)] $EnvironmentName,
    
    # The parameters to be passed to the template. Each parameter is prefixed with "-param_".
    # For example, if the template has a parameter named "TestVMName" with a value of "MyVMName",
    # the string in $Params will be "-param_TestVMName MyVMName".
    # This convention allows the script to dynamically handle different templates.
    [Parameter(ValueFromRemainingArguments=$true)]
        $Params
    )
    
    # Sign in to Azure, or comment out this statement to completely automate environment creation.
    Connect-AzAccount
    
    # Select the subscription that has the lab.  
    Set-AzContext -SubscriptionId $SubscriptionId | Out-Null
    
    # Get the user ID to use later in the script.
    $UserId = $((Get-AzADUser -UserPrincipalName ((Get-AzContext).Account).Id).Id)
    
    # Get the lab location.
    $lab = Get-AzResource -ResourceType "Microsoft.DevTestLab/labs" -Name $LabName
    if ($lab -eq $null) { throw "Unable to find lab $LabName in subscription $SubscriptionId." }
    
    # Get information about the repository connected to the lab.
    $repository = Get-AzResource -ResourceGroupName $lab.ResourceGroupName `
        -ResourceType 'Microsoft.DevTestLab/labs/artifactsources' `
        -ResourceName $LabName `
        -ApiVersion 2016-05-15 `
        | Where-Object { $RepositoryName -in ($_.Name, $_.Properties.displayName) } `
        | Select-Object -First 1
    if ($repository -eq $null) { throw "Unable to find repository $RepositoryName in lab $LabName." }
    
    # Get information about the ARM template base for the environment.
    $template = Get-AzResource -ResourceGroupName $lab.ResourceGroupName `
        -ResourceType "Microsoft.DevTestLab/labs/artifactSources/armTemplates" `
        -ResourceName "$LabName/$($repository.Name)" `
        -ApiVersion 2016-05-15 `
        | Where-Object { $TemplateName -in ($_.Name, $_.Properties.displayName) } `
        | Select-Object -First 1
    if ($template -eq $null) { throw "Unable to find template $TemplateName in lab $LabName." }
    
    # Build the template parameters by using parameter names and values.
    $parameters = Get-Member -InputObject $template.Properties.contents.parameters -MemberType NoteProperty | Select-Object -ExpandProperty Name
    $templateParameters = @()
    
    # Extract the custom parameters from $Params and format them as name/value pairs.
    $Params | ForEach-Object {
        if ($_ -match '^-param_(.*)' -and $Matches[1] -in $parameters) {
            $name = $Matches[1]                
        } elseif ( $name ) {
            $templateParameters += @{ "name" = "$name"; "value" = "$_" }
            $name = $null #reset name variable
        }
    }
    
    # Create an object to hold the necessary template properties.
    $templateProperties = @{ "deploymentProperties" = @{ "armTemplateId" = "$($template.ResourceId)"; "parameters" = $templateParameters }; }
    
    # Deploy the environment in the lab by using the New-AzResource command.
    New-AzResource -Location $Lab.Location `
        -ResourceGroupName $lab.ResourceGroupName `
        -Properties $templateProperties `
        -ResourceType 'Microsoft.DevTestLab/labs/users/environments' `
        -ResourceName "$LabName/$UserId/$EnvironmentName" `
        -ApiVersion '2016-05-15' -Force
    
    Write-Output "Environment $EnvironmentName completed."
    
  3. قم بتشغيل البرنامج النصي، باستخدام القيم الخاصة بك لاستبدال قيم المثال لـ:

    • SubscriptionId
    • LabName
    • ResourceGroupName
    • RepositoryName
    • TemplateName (مجلد القالب في مستودع Git)
    • EnvironmentName
    ./deployenv.ps1 -SubscriptionId "000000000-0000-0000-0000-0000000000000" -LabName "mydevtestlab" -ResourceGroupName "mydevtestlabRG000000" -RepositoryName "myRepository" -TemplateName "ARM template folder name" -EnvironmentName "myNewEnvironment"
    

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