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.
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:
Azure portal laboratuvar kaynağınızı seçin.
Laboratuvarın Genel Bakış sayfasında üst araç çubuğundan Ekle'yi seçin.
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.
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-KEY
veGEN-PASSWORD
parametre değerleri, kullanıcıların değerleri girebilmek için boş giriş alanları oluşturur.
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.
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.
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.
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 şablonu depoları
Azure DevTest Labs ile ARM şablonlarından ortamlar oluşturabilirsiniz. ARM şablonları iki kaynaktan gelebilir:
Azure DevTest Labs, Azure Web Apps, Azure Service Fabric kümesi ve geliştirme SharePoint grupları için önceden yazılmış ortam şablonları içeren bir genel ARM şablonu deposuna sahiptir. PaaS kaynaklarıyla sorunsuz bir başlangıç deneyimi için şablonlar minimum giriş parametrelerine sahiptir. Genel ortam şablonlarını olduğu gibi kullanabilir veya gereksinimlerinize uyacak şekilde özelleştirebilirsiniz.
Ortam şablonlarını kendi genel veya özel Git depolarınızda depolayabilir ve şablonlarınızı tüm laboratuvar kullanıcılarının kullanımına açmak için bu depoları laboratuvarınıza bağlayabilirsiniz.
İ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:
DevTest Labs kaynağı oluştururkenTemel Ayarlar sekmesini seçin.
Genel ortamlar alanında Açık'ı seçin.
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:
Azure portal laboratuvar kaynağınızı seçin.
Sol gezinti bölmesinde Yapılandırma ve ilkeler'i seçin.
Sol gezinti bölmesindeki Sanal makine tabanları'nın altında Genel ortamlar'ı seçin.
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.
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:
Azure portal laboratuvar kaynağınızı seçin.
Sol gezinti bölmesinde Yapılandırma ve ilkeler'i seçin.
Sol gezinti bölmesindeki Sanal makine tabanları'nın altında Genel ortamlar'ı seçin.
Laboratuvar kullanıcılarının kullanamaması için listeden belirli ortamların seçimini kaldırın ve kaydet'i seçin.
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:
Azure portal laboratuvar kaynağınızı seçin.
Sol gezinti bölmesinde Yapılandırma ve ilkeler'i seçin.
Sol gezinti bölmesinde Laboratuvar ayarları'nı seçin.
Ortam erişimi>Kaynak grubu kullanıcı hakları'nın altında Katkıda Bulunan'ı ve ardından Kaydet'i seçin.
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:
Git deposunda bir ARM ortam şablonunun iadesini ve deponun laboratuvara eklenmesini sağlayın.
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."
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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin