ARM şablonlarından Azure DevTest Labs ortamları oluşturma

Bu makalede, Azure Resource Manager (ARM) şablonlarından Azure DevTest Labs ortamları oluşturmayı öğreneceksiniz. Birden çok sanal makine (VM) veya hizmet olarak platform (PaaS) kaynağıyla kolayca ve tutarlı bir şekilde laboratuvar sağlamak için DevTest Labs ortamlarını kullanabilirsiniz. Örneğin, çok katmanlı bir web uygulaması veya SharePoint grubu için laboratuvar oluşturmak için.

Bir ortamdaki kaynaklar aynı yaşam döngüsünü paylaşır ve bunları birlikte yönetebilirsiniz. Laboratuvar ortamlarının ve PaaS kaynaklarının maliyetini, tek tek laboratuvar VM'lerinin maliyetlerini takip ettiğiniz gibi izleyebilirsiniz.

Azure DevTest Labs genel veya özel git deposundaki ARM şablonlarını kullanacak şekilde yapılandırabilirsiniz. Laboratuvarlar için şablon depoları hakkında daha fazla bilgi edinin.

Genel veya özel bir şablon deposundaki ARM şablonundan Azure DevTest Labs ile ortam oluşturmayı gösteren diyagram.

Azure DevTest Labs kaynağı oluşturmak için ARM şablonu kullanmak istiyorsanız Bkz. Hızlı Başlangıç: DevTest Labs'te laboratuvar oluşturmak için ARM şablonu kullanma.

Sınırlamalar

DevTest Labs'de ARM şablonlarından laboratuvar oluştururken şu sınırlamaları göz önünde bulundurun:

  • VM otomatik kapatma, PaaS kaynakları için geçerli değildir.

  • ARM şablonlarını dağıttığınızda tüm laboratuvar ilkeleri değerlendirilmez. Değerlendirilmez ilkeler şunlardır: laboratuvar kullanıcısı başına VM sayısı, kullanıcı başına premium VM sayısı ve kullanıcı başına premium masa sayısı. Örneğin, laboratuvar ilkeniz kullanıcıları her biri yalnızca beş VM ile sınırlayabilir. Ancak, bir kullanıcı onlarca VM oluşturan bir ARM ortam şablonu dağıtabilir.

Şablonlardan ortam oluşturma

Azure DevTest Labs genel şablon deposundan bir ortam oluşturabilir veya laboratuvarınıza özel bir şablon deposu ekleyebilirsiniz.

Laboratuvarınız için ortamları yapılandırmayı öğrenin. Örneğin, şablon depolarını yapılandırma, genel ortamları etkinleştirme veya devre dışı bırakma ve laboratuvar oluşturmak için belirli şablonları seçme.

Şablondan ortam oluşturmak için:

  1. Azure portal laboratuvar kaynağınızı seçin.

  2. Laboratuvarın Genel Bakış sayfasında üst araç çubuğundan Ekle'yi seçin.

  3. Temel seçin sayfasında, kullanılacak ARM ortam şablonunu seçin. Kullanılabilir ortam şablonları, temeller listesinde ilk sırada görünür.

    Genel ortam şablonlarını gösteren ekran görüntüsü.

  4. Ekle ekranında bir Ortam adı girin ve diğer giriş alanlarını doldurun.

    Giriş alanlarının sayısı ve türü ARM şablonunda tanımlanır. Gerekirse , azuredeploy.parameters.json şablonunun boş veya varsayılan olarak tanımladığı giriş alanları için değerler girin.

    • Parametreler için secure string Azure Key Vault gizli dizilerini kullanabilirsiniz. Gizli dizileri bir anahtar kasasında depolamayı ve laboratuvar kaynakları oluştururken kullanmayı öğrenmek için bkz. Azure Key Vault'da gizli dizileri depolama.

    • ARM şablon dosyalarında GEN-UNIQUE, GEN-UNIQUE-[N], GEN-SSH-PUB-KEYve GEN-PASSWORD parametre değerleri, kullanıcıların değerleri girebilmek için boş giriş alanları oluşturur.

    SharePoint ortamı için Ekle bölmesini gösteren ekran görüntüsü.

  5. Ortamı oluşturmak için Ekle'yi seçin.

    Ortam hemen sağlamayı başlatır. Sağlama durumunu Laboratuvara Genel Bakış sayfasında Ortamlarım bölümünde görebilirsiniz. Ortamın sağlanması uzun sürebilir.

  6. Ortam oluşturma işlemi tamamlandıktan sonra, şablonun sağladığı VM'lerin ve diğer kaynakların listesini görmek için Ortamlarım'ın altındaki ortamı genişletin.

    Ortam altındaki VM'lerin listesini gösteren ekran görüntüsü.

    Dağıtım, ARM şablonunun tanımladığı tüm ortam kaynaklarını sağlamak için yeni bir kaynak grubu oluşturur. Kaynak grubunu ve şablonun oluşturduğu tüm kaynakları görüntülemek için Ortamlarım'ın altında ortam adını seçin.

    Tüm ortam kaynaklarını içeren kaynak grubunu gösteren ekran görüntüsü.

  7. Yapılandırmayı, zamanlamaları ve ilkeleri yönetme gibi VM için kullanılabilir eylemleri görmek için bir ortam VM'sini seçin.

    Ortam VM'sinde kullanılabilen eylemleri gösteren ekran görüntüsü.

Ortam şablonu depoları

Azure DevTest Labs ile ARM şablonlarından ortamlar oluşturabilirsiniz. ARM şablonları iki kaynaktan gelebilir:

İpucu

Genel şablonlara düzeltmeler veya eklemeler önermek için açık kaynak GitHub genel şablon deposuna bir çekme isteği gönderin.

Laboratuvarınız için genel ortam ayarlarını yapılandırma

Laboratuvarınızı, ortak şablon deposundan şablonların kullanımını etkinleştirecek şekilde yapılandırabilirsiniz. Laboratuvar için genel şablon deposunu etkinleştirirseniz, kullanıcılar bu şablonları laboratuvarda vm oluşturmalarına benzer şekilde doğrudan Azure portal seçerek hızla bir ortam oluşturabilir.

Ayrıca, kullanıcıların ortam oluşturabileceği şablonları seçebilirsiniz.

Laboratuvar oluştururken genel ortamları etkinleştirme

Laboratuvar oluştururken laboratuvar için genel ortam deposu erişimini etkinleştirmek için:

  1. DevTest Labs kaynağı oluştururkenTemel Ayarlar sekmesini seçin.

  2. Genel ortamlar alanında Açık'ı seçin.

    Yeni bir laboratuvar için genel ortamları etkinleştirmeyi gösteren ekran görüntüsü.

Mevcut laboratuvarlar için genel ortamları etkinleştirme veya devre dışı bırakma

Arm şablonuyla oluşturduğunuz mevcut laboratuvarlar veya laboratuvarlar için genel ortamlar etkinleştirilmemiş olabilir. Mevcut laboratuvarlar için ortak ortam deposunu etkinleştirmek veya devre dışı bırakmak için:

  1. Azure portal laboratuvar kaynağınızı seçin.

  2. Sol gezinti bölmesinde Yapılandırma ve ilkeler'i seçin.

  3. Sol gezinti bölmesindeki Sanal makine tabanları'nın altında Genel ortamlar'ı seçin.

  4. Laboratuvarda genel ortamları etkinleştirmek veya devre dışı bırakmak için Bu laboratuvar için Genel Ortamları Etkinleştir için Evet veya Hayır'ı seçin.

  5. Kaydet’i seçin.

Kullanılabilir genel ortam şablonlarını seçin

Genel ortamları etkinleştirdiğinizde, depodaki tüm ortam şablonları ortam oluşturmak için kullanılabilir. Laboratuvar için yalnızca belirli ortamlara izin vermek için:

  1. Azure portal laboratuvar kaynağınızı seçin.

  2. Sol gezinti bölmesinde Yapılandırma ve ilkeler'i seçin.

  3. Sol gezinti bölmesindeki Sanal makine tabanları'nın altında Genel ortamlar'ı seçin.

  4. Laboratuvar kullanıcılarının kullanamaması için listeden belirli ortamların seçimini kaldırın ve kaydet'i seçin.

    Laboratuvar için genel ortamların listesini gösteren ekran görüntüsü.

Ortam kullanıcı haklarını yapılandırma

Varsayılan olarak, laboratuvar kullanıcıları ortamlarda Okuyucu rolüne sahiptir ve ortam kaynaklarını değiştiremez. Örneğin, kullanıcılar kaynakları durduramaz veya başlatamaz. Laboratuvar kullanıcılarına ortam kaynaklarını düzenleyebilmeleri için Katkıda Bulunan rolü vermek için:

  1. Azure portal laboratuvar kaynağınızı seçin.

  2. Sol gezinti bölmesinde Yapılandırma ve ilkeler'i seçin.

  3. Sol gezinti bölmesinde Laboratuvar ayarları'nı seçin.

  4. Ortam erişimi>Kaynak grubu kullanıcı hakları'nın altında Katkıda Bulunan'ı ve ardından Kaydet'i seçin.

    Laboratuvar kullanıcısı Katkıda Bulunan izinlerini yapılandırmayı gösteren ekran görüntüsü.

Ortam oluşturmayı otomatikleştirme

Geliştirme veya test senaryoları için birden çok ortam oluşturmanız gerekiyorsa, Azure PowerShell veya Azure CLI ile ortam dağıtımlarını otomatikleştirebilirsiniz.

Ortam oluşturmak için az deployment group create Azure CLI komutunu kullanabilirsiniz. Daha fazla bilgi için bkz. Resource Manager şablonları ve Azure CLI ile kaynakları dağıtma.

Laboratuvar sahipleri ve yöneticileri ARM şablonlarından VM'ler ve ortamlar oluşturmak için Azure PowerShell kullanabilir.

Not

Azure ile etkileşime geçmek için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Azure PowerShell ile ARM ortam şablonu dağıtımlarını otomatikleştirmek için:

  1. Git deposunda bir ARM ortam şablonunun iadesini ve deponun laboratuvara eklenmesini sağlayın.

  2. Aşağıdaki PowerShell betiğini bilgisayarınıza deployenv.ps1olarak kaydedin. Bu betik, laboratuvarda ortamı oluşturmak için ARM şablonunu çağırır.

    #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. Aşağıdaki örnek değerleri değiştirmek için kendi değerlerinizi kullanarak betiği çalıştırın:

    • SubscriptionId
    • LabName
    • ResourceGroupName
    • RepositoryName
    • TemplateName (Git deposunda şablon klasörü)
    • EnvironmentName
    ./deployenv.ps1 -SubscriptionId "000000000-0000-0000-0000-0000000000000" -LabName "mydevtestlab" -ResourceGroupName "mydevtestlabRG000000" -RepositoryName "myRepository" -TemplateName "ARM template folder name" -EnvironmentName "myNewEnvironment"
    

Sonraki adımlar