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. Çok katmanlı bir web uygulaması veya SharePoint grubu için laboratuvar oluşturmak için bu yaklaşımı kullanabilirsiniz.

DevTest Labs ortamındaki 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'leri için maliyetleri takip ettiğiniz gibi izleyebilirsiniz.

Azure DevTest Labs'i genel veya özel github deposundaki ARM şablonlarını kullanacak şekilde yapılandırabilirsiniz. Aşağıdaki diyagramda, genel veya özel bir şablon deposundaki ARM şablonundan DevTest Labs ile ortam oluşturma gösterilmektedir. Laboratuvarlar için şablon depoları bölümünde bu işlem ayrıntılı olarak açıklanmaktadır.

Şablon deposunda ARM şablonu kullanarak DevTest Labs ile ortam oluşturmayı gösteren diyagram.

Not

Ortam oluşturmak için Azure Dağıtım Ortamları (ADE) önerilir. ADE, geliştiricilerin proje tabanlı şablonları kullanarak uygulama altyapısını hızla dağıtmasına ve geliştirme ekipleriniz için tutarlı ve güvenli ortamlar sağlamasına yardımcı olur.

Azure Dağıtım Ortamları hakkında daha fazla bilgi edinmek için Bkz . Azure Dağıtım Ortamları belgeleri.

Önkoşullar

  • DevTest Labs'de laboratuvar ortamlarını yapılandırma deneyimine sahip olmak yararlı olur. Laboratuvarlarla çalışmaya yeni başladıysanız, genel ortam ayarlarını yapılandırma bölümündeki yönergeleri gözden geçirerek başlayın. Şablon depolarını yapılandırmayı, genel ortamları etkinleştirmeyi veya devre dışı bırakmayı ve laboratuvar oluşturmak için şablonları seçmeyi anlamanız gerekir.

Sınırlamalar

DevTest Labs'de ARM şablonlarından laboratuvar oluştururken göz önünde bulundurmanız gereken birkaç sınırlama vardır:

  • DevTest Labs, ARM şablonlarından oluşturulan PaaS kaynakları için sanal makine (VM) otomatik kapatma özelliğini desteklemez.

  • DevTest Labs, ARM şablonlarını dağıttığınızda tüm laboratuvar ilkelerini değerlendirmez. Aşağıdaki ilkeler değerlendirilmez:

    • Laboratuvar kullanıcısı başına VM sayısı
    • Kullanıcı başına premium VM sayısı
    • Kullanıcı başına premium masa sayısı

    Her kullanıcının en fazla beş VM oluşturmasına izin veren bir laboratuvar ilkeniz olduğunu varsayalım. DevTest Labs'de her 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.

Aşağıdaki adımları izleyerek bir şablondan ortam oluşturun:

  1. Azure portalında DevTest Labs laboratuvar kaynağınıza gidin.

  2. Laboratuvara Genel Bakış sayfasında, soldaki menüden Laboratuvarım bölümünü genişletin ve Ortamlarım'ı seçin.

  3. Ortamlarım sayfasında araç çubuğunda Ekle'yi seçin.

  4. Temel seçin sayfasında, kullanılacak ARM ortam şablonunu seçin:

    DevTest Labs laboratuvar kaynağı için kullanılabilen genel ortam ARM şablonlarını gösteren ekran görüntüsü.

  5. Ekle bölmesinde bir Ortam adı girin ve diğer parametre ayarlarını yapılandırın.

    Parametre türü ve sayısı her ARM şablonu için benzersizdir. Kırmızı yıldız işareti (*) gerekli bir ayarı gösterir. Tüm gerekli ayarlar için değerler girmelisiniz.

    ARM şablon dosyasındaki (azuredeploy.parameters.json) bazı parametre değerleri, Ekle bölmesinde boş ayar alanları oluşturur (varsayılan değer yoktur). Bu parametre değerleri , GEN-UNIQUE-[N], GEN-SSH-PUB-KEYve GEN-PASSWORDdeğerlerini içerirGEN-UNIQUE.

    SharePoint ortamı için yapılandırılan ayarları içeren Ekle bölmesini gösteren ekran görüntüsü.

    Parolalar gibi güvenli dize parametreleri için Azure Key Vault'tan gizli dizileri kullanabilirsiniz. Gizli dizileri bir anahtar kasasında depolamayı ve laboratuvar kaynakları oluştururken bunları kullanmayı öğrenmek için bkz . Azure Key Vault'ta gizli dizileri depolama.

  6. Ortamı oluşturmak için Ekle'yi seçin. Ortam hazırlamaya hemen başlar.

    Not

    Ortam sağlama işlemi uzun sürebilir. Toplam süre, DevTest Labs'in laboratuvar ortamının bir parçası olarak oluşturduğu hizmet örneklerinin, VM'lerin ve diğer kaynakların sayısına bağlıdır.

  7. Sağlama durumunu izlemek için laboratuvarın Ortamlarım sayfasına dönün:

    Laboratuvar ortamı için sağlama durumunun nasıl görüntülendiğini gösteren ekran görüntüsü.

    Sağlama işlemi devam ederken ortam durumu Oluşturuluyor şeklindedir. Sağlama tamamlandıktan sonra durum Hazır olarak değişir. Sayfa görünümünü güncelleştirmek ve geçerli durumu denetlemek için araç çubuğunda Yenile'yi seçebilirsiniz.

  8. Ortam hazır olduğunda, ortamlarım listesinden ortamı genişleterek şablon tarafından sağlanan VM'leri görebilirsiniz:

    Yeni sağlanan ortam için oluşturulan VM'lerin listesini gösteren ekran görüntüsü.

  9. Dağıtım, ARM şablonu tarafından tanımlanan tüm ortam kaynaklarını sağlamak için yeni bir kaynak grubu oluşturur. Kaynak grubunu ve şablon tarafından oluşturulan tüm kaynakları görüntülemek için Ortamlarım listesinde ortam adını seçin:

    VM'ler, diskler, sanal ağ ve daha fazlası dahil olmak üzere tüm ortam kaynaklarını içeren kaynak grubunu gösteren ekran görüntüsü.

  10. Vm için yapılandırmayı, zamanlamaları ve ilkeleri yönetme gibi kullanılabilir eylemleri görmek için listeden bir ortam VM'sini seçin:

    Seçili ortam VM'sinin kullanılabilir eylemlerini gösteren ekran görüntüsü.

Şablon depolarını keşfetme

DevTest Labs'de ortam oluşturmaya yönelik ARM şablonları iki kaynaktan edinilebilir:

Genel ortam ayarlarını yapılandırma

Laboratuvarınızı, genel şablon GitHub deposundan şablonların kullanımını etkinleştirecek şekilde yapılandırabilirsiniz. Laboratuvar için genel şablon deposunu etkinleştirdiğinizde, kullanıcılar laboratuvarda vm oluşturma şekline benzer şekilde bu şablonları doğrudan Azure portalında seçerek hızla bir laboratuvar ortamı oluşturabilir. Ayrıca, kullanıcıların laboratuvar ortamları oluşturması için hangi şablonların kullanılabilir olduğunu seçebilirsiniz.

Yeni laboratuvar için genel ortam erişimini ayarlama

Aşağıdaki adımları izleyerek yeni bir laboratuvar için genel ortam deposu erişimini yapılandırın:

  1. DevTest Labs kaynağı oluşturma işlemi sırasında Temel Ayarlar sekmesini seçin.

  2. Genel ortamlar seçeneğini Açık olarak ayarlayın:

    Laboratuvar oluşturma işlemi sırasında bir laboratuvar için genel ortam depolarının nasıl etkinleştirildiğini gösteren ekran görüntüsü.

Mevcut laboratuvarlar için genel ortam erişimini ayarlama

Arm şablonuyla oluşturduğunuz mevcut laboratuvarlar veya laboratuvarlar için genel ortamlar etkinleştirilmemiş olabilir. Bu laboratuvar için Genel Ortamları Etkinleştir seçeneğiyle mevcut laboratuvarların genel ortam depolarına erişimi denetleyebilirsiniz.

Mevcut laboratuvarlar için genel ortam deposu erişimini etkinleştirmek veya devre dışı bırakmak için şu adımları izleyin:

  1. Azure portalında, genel ortam erişimini ayarlamak istediğiniz DevTest Labs laboratuvar kaynağınıza gidin.

  2. Laboratuvarınıza Genel Bakış sayfasında, soldaki menüden Ayarlar bölümünü genişletin ve Yapılandırma ve ilkeler'i seçin.

  3. Yapılandırma ve ilkeler sayfasında, soldaki menüden Sanal makine temelleri bölümünü genişletin ve Genel ortamlar'ı seçin.

  4. Genel ortamlar sayfasında, Bu laboratuvar için Genel Ortamları Etkinleştir seçeneğini Evet olarak ayarlayın:

    Mevcut bir laboratuvar kaynağı için tüm genel ortam depolarının nasıl etkinleştirildiğini gösteren ekran görüntüsü.

  5. Kaydet'i seçin.

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

Laboratuvarınızın genel ortamlarına erişimi denetlemek için Bu laboratuvar için Genel Ortamları Etkinleştir seçeneğini ayarladığınızda, tüm ortam şablonları varsayılan olarak seçilir. Seçenek ayarı, seçiminize bağlı olarak tüm ortamlara erişime izin verir veya erişim izni verir. Kullanıcılarınızın erişebileceği ortamları belirtmek için listedeki seçim onay kutularını kullanabilirsiniz.

Laboratuvar için yalnızca belirli ortamlara erişime izin vermek için şu adımları izleyin:

  1. Genel ortamlar sayfasında, Bu laboratuvar için Genel Ortamları Etkinleştir seçeneğini Evet olarak ayarlayın.

  2. Laboratuvar kullanıcılarının kullanamaması için listedeki belirli ortamların seçimini kaldırın:

    Kullanıcılara erişimi devre dışı bırakmak için laboratuvar için genel ortam depolarının seçimini kaldırmayı gösteren ekran görüntüsü.

  3. Kaydet'i seçin.

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

Varsayılan olarak, laboratuvar kullanıcılarına genel ortam depolarında Okuyucu rolü atanır. Ortam kaynaklarını değiştiremezler ve kaynakları durduramaz veya başlatamaz.

Laboratuvar kullanıcılarına Katkıda Bulunan rolü vermek ve ortam kaynaklarını düzenlemelerine izin vermek için aşağıdaki adımları kullanın:

  1. Azure portalında, kullanıcı rolü atamalarını ayarlamak istediğiniz DevTest Labs laboratuvar kaynağınıza gidin.

  2. Laboratuvarınıza Genel Bakış sayfasında, soldaki menüden Ayarlar bölümünü genişletin ve Yapılandırma ve ilkeler'i seçin.

  3. Yapılandırma ve ilkeler sayfasında, soldaki menüden Ayarlar bölümünü genişletin ve Laboratuvar ayarları'nı seçin.

  4. Laboratuvar ayarları sayfasında Ortam erişimi>Kaynak grubu kullanıcı hakları seçeneğini Katkıda Bulunan olarak ayarlayın:

    DevTest Labs'de laboratuvar kullanıcıları için Katkıda Bulunan rolü izinlerinin nasıl ayarlandığını gösteren ekran görüntüsü.

  5. Kaydet'i seçin.

Ortam oluşturmayı otomatikleştirin

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

Laboratuvar sahipleri ve yöneticileri ARM şablonlarından VM'ler ve ortamlar oluşturmak için Azure PowerShell'i kullanabilir. Ortam oluşturmak için az deployment group create komutunu kullanarak Azure CLI aracılığıyla dağıtımı otomatikleştirebilirsiniz. Daha fazla bilgi için bkz . ARM şablonları ve Azure CLI ile kaynakları dağıtma.

Not

Azure ile etkileşim kurmak 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.

Aşağıdaki adımlarla Azure PowerShell ile ARM ortam şablonu dağıtımlarını otomatikleştirin:

  1. ARM ortam şablonunu bir GitHub deposunda depolayın.

  2. GitHub ARM şablon deposunu laboratuvarınıza ekleyin.

  3. Aşağıdaki PowerShell betiğini deployenv.ps1 dosya adıyla bilgisayarınıza 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 GitHub repository)
    [string] [Parameter(Mandatory=$true)] $TemplateName,
    
    # Name of the environment to create in the lab
    [string] [Parameter(Mandatory=$true)] $EnvironmentName,
    
    # The parameters to pass 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 is "-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 for your 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 your 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 your 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."
    
  4. Betikteki aşağıdaki yer tutucuları kendi laboratuvar değerlerinizle güncelleştirin:

    • SubscriptionId
    • LabName
    • ResourceGroupName
    • RepositoryName
    • TemplateName (GitHub deposunda şablon klasörü)
    • EnvironmentName

    Aşağıdaki kod parçacığında betiğin örnek parametre değerleriyle nasıl çalıştırılır gösterilmektedir:

    ./deployenv.ps1 -SubscriptionId "000000000-0000-0000-0000-0000000000000" -LabName "mydevtestlab" -ResourceGroupName "mydevtestlabRG000000" -RepositoryName "myRepository" -TemplateName "ARM template folder name" -EnvironmentName "myNewEnvironment"
    
  5. Betiği çalıştırın.