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.
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:
Azure portalında DevTest Labs laboratuvar kaynağınıza gidin.
Laboratuvara Genel Bakış sayfasında, soldaki menüden Laboratuvarım bölümünü genişletin ve Ortamlarım'ı seçin.
Ortamlarım sayfasında araç çubuğunda Ekle'yi seçin.
Temel seçin sayfasında, kullanılacak ARM ortam şablonunu seçin:
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-KEY
veGEN-PASSWORD
değerlerini içerirGEN-UNIQUE
.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.
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.
Sağlama durumunu izlemek için laboratuvarın Ortamlarım sayfasına dönün:
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.
Ortam hazır olduğunda, ortamlarım listesinden ortamı genişleterek şablon tarafından sağlanan VM'leri görebilirsiniz:
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 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:
Şablon depolarını keşfetme
DevTest Labs'de ortam oluşturmaya yönelik ARM şablonları iki kaynaktan edinilebilir:
DevTest Labs'de Azure Web Apps, Azure Service Fabric kümesi ve geliştirme SharePoint grupları için önceden kimlik doğrulaması yapılan ortam şablonları içeren bir genel ARM şablonu deposu vardır. Şablonlar, PaaS kaynaklarıyla sorunsuz bir başlangıç deneyimi için minimum giriş parametrelerine sahiptir. Genel ortam şablonlarını olduğu gibi kullanabilir veya gereksinimlerinize uyacak şekilde özelleştirebilirsiniz. GitHub genel şablon deposuna bir çekme isteği göndererek genel şablona düzeltmeler veya eklemeler de önerebilirsiniz.
Ortam şablonlarını kendi genel veya özel GitHub 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 ekleyebilirsiniz.
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:
DevTest Labs kaynağı oluşturma işlemi sırasında Temel Ayarlar sekmesini seçin.
Genel ortamlar seçeneğini Açık olarak ayarlayın:
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:
Azure portalında, genel ortam erişimini ayarlamak istediğiniz DevTest Labs laboratuvar kaynağınıza gidin.
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.
Yapılandırma ve ilkeler sayfasında, soldaki menüden Sanal makine temelleri bölümünü genişletin ve Genel ortamlar'ı seçin.
Genel ortamlar sayfasında, Bu laboratuvar için Genel Ortamları Etkinleştir seçeneğini Evet olarak ayarlayın:
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:
Genel ortamlar sayfasında, Bu laboratuvar için Genel Ortamları Etkinleştir seçeneğini Evet olarak ayarlayın.
Laboratuvar kullanıcılarının kullanamaması için listedeki belirli ortamların seçimini kaldırın:
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:
Azure portalında, kullanıcı rolü atamalarını ayarlamak istediğiniz DevTest Labs laboratuvar kaynağınıza gidin.
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.
Yapılandırma ve ilkeler sayfasında, soldaki menüden Ayarlar bölümünü genişletin ve Laboratuvar ayarları'nı seçin.
Laboratuvar ayarları sayfasında Ortam erişimi>Kaynak grubu kullanıcı hakları seçeneğini Katkıda Bulunan olarak ayarlayın:
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:
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."
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"
Betiği çalıştırın.