Vytváření prostředí Azure DevTest Labs ze šablon ARM
V tomto článku se dozvíte, jak vytvářet prostředí Azure DevTest Labs ze šablon Azure Resource Manageru (ARM ). Pomocí prostředí DevTest Labs můžete snadno a konzistentně zřizovat testovací prostředí s několika virtuálními počítači nebo prostředky paaS (platforma jako služba). Tento přístup můžete použít k vytvoření testovacího prostředí pro vícevrstvou webovou aplikaci nebo farmu SharePointu.
Prostředky v prostředí DevTest Labs sdílejí stejný životní cyklus a můžete je spravovat společně. Náklady na testovací prostředí a prostředky PaaS můžete sledovat stejným způsobem jako náklady na jednotlivé virtuální počítače testovacího prostředí.
Azure DevTest Labs můžete nakonfigurovat tak, aby používala šablony ARM z veřejného nebo privátního úložiště GitHub. Následující diagram ukazuje, jak vytvořit prostředí s DevTest Labs ze šablony ARM ve veřejném nebo vlastním úložišti šablon. Úložiště šablon pro testovací prostředí podrobně popisují tento proces.
Poznámka:
Prostředí nasazení Azure (ADE) se důrazně doporučuje pro vytváření prostředí. ADE umožňuje vývojářům rychle nasadit infrastrukturu aplikací pomocí šablon založených na projektu a zajistit konzistentní a zabezpečená prostředí pro vývojové týmy.
Další informace o prostředích nasazení Azure najdete v dokumentaci k prostředím nasazení Azure.
Požadavky
- Je užitečné mít zkušenosti s konfigurací testovacích prostředí v DevTest Labs. Pokud s testovacími prostředími začínáte pracovat, přečtěte si pokyny v části Konfigurace nastavení veřejného prostředí. Potřebujete vědět, jak nakonfigurovat úložiště šablon, povolit nebo zakázat veřejná prostředí a vybrat šablony pro vytváření testovacích prostředí.
Omezení
Při vytváření testovacích prostředí ze šablon ARM v DevTest Labs je potřeba mít na paměti několik omezení:
DevTest Labs nepodporuje funkci automatického vypnutí virtuálního počítače pro prostředky PaaS vytvořené ze šablon ARM.
DevTest Labs při nasazování šablon ARM nevyhodnocuje všechny zásady testovacího prostředí. Nevyhodnocují se následující zásady:
- Počet virtuálních počítačů na uživatele testovacího prostředí
- Počet prémiových virtuálních počítačů na uživatele
- Počet prémiových stolů na uživatele
Předpokládejme, že máte zásady testovacího prostředí, které každému uživateli umožňují vytvořit maximálně pět virtuálních počítačů. V DevTest Labs může každý uživatel nasadit šablonu prostředí ARM, která vytvoří desítky virtuálních počítačů.
Vytváření prostředí ze šablon
Prostředí můžete vytvořit z veřejného úložiště šablon Azure DevTest Labs nebo můžete do testovacího prostředí přidat privátní úložiště šablon.
Pomocí následujícího postupu vytvořte prostředí ze šablony:
Na webu Azure Portal přejděte k prostředku testovacího prostředí DevTest Labs.
Na stránce Přehled testovacího prostředí rozbalte oddíl Moje cvičení v nabídce vlevo a vyberte Moje prostředí.
Na stránce Moje prostředí vyberte Přidat na panelu nástrojů.
Na stránce Zvolit základní stránku vyberte šablonu prostředí ARM, která se má použít:
V podokně Přidat zadejte název prostředí a nakonfigurujte další nastavení parametrů.
Typ a počet parametrů jsou jedinečné pro každou šablonu ARM. Červená hvězdička (*) označuje požadované nastavení. Je nutné zadat hodnoty pro všechna požadovaná nastavení.
Některé hodnoty parametrů v souboru šablony ARM (azuredeploy.parameters.json) vytvářejí prázdná pole nastavení v podokně Přidat (bez výchozí hodnoty). Mezi tyto hodnoty parametrů patří
GEN-UNIQUE
,GEN-UNIQUE-[N]
,GEN-SSH-PUB-KEY
aGEN-PASSWORD
.Pro zabezpečené parametry řetězců , jako jsou hesla, můžete použít tajné kódy ze služby Azure Key Vault. Informace o ukládání tajných kódů do trezoru klíčů a jejich použití při vytváření prostředků testovacího prostředí najdete v tématu Ukládání tajných kódů ve službě Azure Key Vault.
Vyberte Přidat a vytvořte prostředí. Prostředí se začne zřizovat okamžitě.
Poznámka:
Proces zřízení prostředí může trvat dlouho. Celková doba závisí na počtu instancí služeb, virtuálních počítačích a dalších prostředcích, které DevTest Labs vytváří jako součást testovacího prostředí.
Pokud chcete monitorovat stav zřizování, vraťte se na stránku Moje prostředí testovacího prostředí :
Během zřizování se stav prostředí vytváří. Po dokončení zřizování se stav změní na Připraveno. Pokud chcete aktualizovat zobrazení stránky a zkontrolovat aktuální stav, můžete na panelu nástrojů vybrat Aktualizovat .
Až bude prostředí připravené, můžete prostředí rozbalit v seznamu Moje prostředí a zobrazit virtuální počítače zřízené šablonou:
Nasazení vytvoří novou skupinu prostředků, která zřídí všechny prostředky prostředí definované šablonou ARM. Výběrem názvu prostředí v seznamu Moje prostředí zobrazíte skupinu prostředků a všechny prostředky vytvořené šablonou:
Výběrem virtuálního počítače prostředí v seznamu zobrazíte dostupné akce pro virtuální počítač, jako je správa konfigurace, plánů a zásad:
Prozkoumání úložišť šablon
Šablony ARM pro vytváření prostředí v DevTest Labs jsou k dispozici ze dvou zdrojů:
DevTest Labs má veřejné úložiště šablon ARM, které obsahuje předem připravené šablony prostředí pro Azure Web Apps, cluster Azure Service Fabric a vývojové farmy SharePointu. Šablony mají minimální vstupní parametry pro bezproblémové prostředí začínáme s prostředky PaaS. Šablony veřejného prostředí můžete použít tak, jak jsou, nebo je přizpůsobit podle svých potřeb. Můžete také navrhnout revize nebo dodatky k veřejné šabloně odesláním žádosti o přijetí změn do veřejného úložiště šablon GitHubu.
Šablony prostředí můžete ukládat do vlastních veřejných nebo privátních úložišť GitHubu a přidat tato úložiště do testovacího prostředí , aby byly šablony dostupné všem uživatelům testovacího prostředí.
Konfigurace nastavení veřejného prostředí
Testovací prostředí můžete nakonfigurovat tak, aby umožňovalo použití šablon z úložiště GitHubu s veřejnou šablonou. Když pro testovací prostředí povolíte úložiště veřejných šablon, uživatelé můžou rychle vytvořit testovací prostředí tak, že tyto šablony vyberou přímo na webu Azure Portal, podobně jako když vytvoří virtuální počítač v testovacím prostředí. Kromě toho můžete vybrat, které šablony jsou uživatelům k dispozici k vytváření testovacích prostředí.
Nastavení přístupu k veřejnému prostředí pro nové testovací prostředí
Následujícím postupem nakonfigurujte přístup k úložišti veřejného prostředí pro nové testovací prostředí:
Během procesu vytvoření prostředku DevTest Labs vyberte kartu Základní nastavení .
Nastavte možnost Veřejná prostředí na Zapnuto:
Nastavení přístupu k veřejnému prostředí pro existující testovací prostředí
U existujících testovacích prostředí nebo testovacích prostředí, která vytvoříte pomocí šablony ARM, nemusí být veřejná prostředí povolená. Přístup k úložištím veřejného prostředí můžete řídit pro všechna existující testovací prostředí pomocí možnosti Povolit veřejná prostředí pro toto testovací prostředí.
Pokud chcete povolit nebo zakázat přístup k úložišti veřejného prostředí pro jakékoli existující testovací prostředí, postupujte takto:
Na webu Azure Portal přejděte k prostředku testovacího prostředí DevTest Labs, kde chcete nastavit přístup k veřejnému prostředí.
Na stránce Přehled testovacího prostředí rozbalte oddíl Nastavení v nabídce vlevo a vyberte Konfigurace a zásady.
Na stránce Konfigurace a zásady rozbalte oddíl Základy virtuálních počítačů v nabídce vlevo a vyberte Veřejná prostředí.
Na stránce Veřejná prostředí nastavte možnost Povolit veřejná prostředí pro toto cvičení na Ano:
Zvolte Uložit.
Výběr dostupných veřejných šablon prostředí
Když pro tuto možnost testovacího prostředí nastavíte povolit veřejná prostředí, budou ve výchozím nastavení vybrány všechny šablony prostředí. Nastavení možnosti buď povoluje nebo zakáže přístup ke všem prostředím na základě vašeho výběru. Pomocí zaškrtávacích políček pro výběr v seznamu můžete určit prostředí, ke kterým mají uživatelé přístup.
Pokud chcete povolit přístup jenom ke konkrétním prostředím testovacího prostředí, postupujte takto:
Na stránce Veřejná prostředí nastavte možnost Povolit veřejná prostředí pro toto cvičení na Ano.
Zrušte výběr konkrétních prostředí v seznamu, aby byly uživatelům testovacího prostředí nedostupné:
Zvolte Uložit.
Konfigurace uživatelských práv prostředí
Ve výchozím nastavení se uživatelům testovacího prostředí přiřadí role Čtenář v úložištích veřejného prostředí. Nemůžou měnit prostředky prostředí a nemůžou zastavit ani spustit prostředky.
Pomocí následujícího postupu uživatelům testovacího prostředí udělíte roli Přispěvatel a umožníte jim upravovat prostředky prostředí:
Na webu Azure Portal přejděte k prostředku testovacího prostředí DevTest Labs, kde chcete upravit přiřazení rolí uživatelů.
Na stránce Přehled testovacího prostředí rozbalte oddíl Nastavení v nabídce vlevo a vyberte Konfigurace a zásady.
Na stránce Konfigurace a zásady rozbalte oddíl Nastavení v nabídce vlevo a vyberte Nastavení testovacího prostředí.
Na stránce Nastavení testovacího prostředí nastavte možnost Uživatelská práva skupiny prostředků pro přístup k>prostředí na Přispěvatel:
Zvolte Uložit.
Automatizace vytváření prostředí
Pokud potřebujete vytvořit více prostředí pro scénáře vývoje nebo testování, můžete automatizovat nasazení prostředí pomocí Azure PowerShellu nebo Azure CLI.
Vlastníci a správci testovacího prostředí můžou pomocí Azure PowerShellu vytvářet virtuální počítače a prostředí ze šablon ARM. Nasazení můžete také automatizovat prostřednictvím Azure CLI pomocí příkazu az deployment group create k vytvoření prostředí. Další informace najdete v tématu Nasazení prostředků pomocí šablon ARM a Azure CLI.
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Automatizace nasazení šablon prostředí ARM pomocí Azure PowerShellu pomocí následujícího postupu:
Přidejte do testovacího prostředí úložiště šablon ARM GitHubu.
Uložte následující skript PowerShellu do počítače s názvem souboru deployenv.ps1. Tento skript volá šablonu ARM pro vytvoření prostředí v testovacím prostředí.
#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."
Aktualizujte následující zástupné symboly ve skriptu vlastními hodnotami testovacího prostředí:
SubscriptionId
LabName
ResourceGroupName
RepositoryName
TemplateName
(složka šablony v úložišti GitHub)EnvironmentName
Následující fragment kódu ukazuje, jak spustit skript s ukázkovými hodnotami parametrů:
./deployenv.ps1 -SubscriptionId "000000000-0000-0000-0000-0000000000000" -LabName "mydevtestlab" -ResourceGroupName "mydevtestlabRG000000" -RepositoryName "myRepository" -TemplateName "ARM template folder name" -EnvironmentName "myNewEnvironment"
Spusťte skript.