Vytváření Azure DevTest Labs prostředí ze šablon ARM

V tomto článku se dozvíte, jak vytvářet Azure DevTest Labs prostředí ze šablon Azure Resource Manager (ARM). Pomocí prostředí DevTest Labs můžete snadno a konzistentně zřizovat testovací prostředí s více virtuálními počítači nebo prostředky platformy jako služby (PaaS). Můžete například vytvořit testovací prostředí pro vícevrstvé webové aplikace nebo farmu Služby SharePoint.

Prostředky v prostředí 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ě jako náklady na jednotlivé virtuální počítače testovacího prostředí.

Můžete nakonfigurovat Azure DevTest Labs tak, aby používaly šablony ARM z veřejného nebo privátního úložiště Git. Přečtěte si další informace o úložištích šablon pro testovací prostředí.

Diagram znázorňující, jak vytvořit prostředí s Azure DevTest Labs ze šablony ARM ve veřejném nebo vlastním úložišti šablon

Pokud chcete k vytvoření prostředku Azure DevTest Labs použít šablonu ARM, projděte si téma Rychlý start: Použití šablony ARM k vytvoření testovacího prostředí v DevTest Labs.

Omezení

Při vytváření testovacích prostředí ze šablon ARM v DevTest Labs zvažte tato omezení:

  • Automatické vypnutí virtuálního počítače se nevztahuje na prostředky PaaS.

  • Při nasazování šablon ARM se nevyhodnocují všechny zásady testovacího prostředí. Mezi zásady, které se nevyhodnocují, patří: počet virtuálních počítačů na uživatele testovacího prostředí, počet virtuálních počítačů Premium na uživatele a počet počítačů Premium na uživatele. Zásady testovacího prostředí můžou například omezit uživatele jenom na pět virtuálních počítačů za kus. Uživatel ale může 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 úložiště privátních šablon.

Zjistěte, jak nakonfigurovat prostředí pro testovací prostředí. Například jak nakonfigurovat úložiště šablon, povolit nebo zakázat veřejná prostředí a vybrat konkrétní šablony pro vytváření testovacích prostředí.

Vytvoření prostředí ze šablony:

  1. V Azure Portal vyberte prostředek testovacího prostředí.

  2. Na stránce Přehled testovacího prostředí na horním panelu nástrojů vyberte Přidat .

  3. Na stránce Zvolte základ vyberte šablonu prostředí ARM, která se má použít. Dostupné šablony prostředí se zobrazí jako první v seznamu bází.

    Snímek obrazovky znázorňující šablony veřejného prostředí

  4. Na obrazovce Přidat zadejte název prostředí a vyplňte ostatní vstupní pole.

    Počet a typ vstupních polí je definován v šabloně ARM. Podle potřeby zadejte hodnoty vstupních polí, které soubor šablony azuredeploy.parameters.json definuje jako prázdné nebo výchozí.

    • Pro secure string parametry můžete použít tajné kódy z Azure Key Vault. Informace o tom, jak ukládat tajné kódy do trezoru klíčů a používat je při vytváření prostředků testovacího prostředí, najdete v tématu Ukládání tajných kódů v Azure Key Vault.

    • V souborech GEN-UNIQUEšablon ARM hodnoty parametrů , GEN-UNIQUE-[N], GEN-SSH-PUB-KEYa GEN-PASSWORD vygenerují prázdná vstupní pole pro uživatele, aby mohli zadat hodnoty.

    Snímek obrazovky s podoknem Přidat pro prostředí SharePointu

  5. Vyberte Přidat a vytvořte prostředí.

    Prostředí se okamžitě začne zřizovat. Stav zřizování najdete v části Moje prostředí na stránce Přehled testovacího prostředí. Zřizování prostředí může trvat dlouho.

  6. Po dokončení vytváření prostředí rozbalte prostředí v části Moje prostředí a zobrazte seznam virtuálních počítačů a dalších prostředků, které šablona zřídila.

    Snímek obrazovky se seznamem virtuálních počítačů v prostředí

    Nasazení vytvoří novou skupinu prostředků pro zřízení všech prostředků prostředí definovaných šablonou ARM. Výběrem názvu prostředí v části Moje prostředí zobrazte skupinu prostředků a všechny prostředky, které šablona vytvořila.

    Snímek obrazovky znázorňující skupinu prostředků se všemi prostředky prostředí

  7. Výběrem virtuálního počítače prostředí zobrazíte dostupné akce pro virtuální počítač, jako je správa konfigurace, plánů a zásad.

    Snímek obrazovky s dostupnými akcemi pro virtuální počítač prostředí

Úložiště šablon prostředí

Pomocí Azure DevTest Labs můžete vytvářet prostředí ze šablon ARM. Šablony ARM můžou pocházet ze dvou zdrojů:

Tip

Pokud chcete navrhnout revize nebo přidání veřejných šablon, odešlete žádost o přijetí změn do opensourcového úložiště veřejných šablon GitHubu.

Konfigurace nastavení veřejného prostředí pro testovací prostředí

Testovací prostředí můžete nakonfigurovat tak, aby umožňovalo použití šablon z veřejného úložiště šablon. Pokud povolíte úložiště veřejných šablon pro testovací prostředí, můžou uživatelé rychle vytvořit prostředí tak, že tyto šablony vyberou přímo v Azure Portal, podobně jako vytvoří virtuální počítač v testovacím prostředí.

Kromě toho můžete vybrat, ze kterých šablon budou uživatelé k dispozici pro vytváření prostředí.

Povolení veřejných prostředí při vytváření testovacího prostředí

Povolení přístupu k úložišti veřejného prostředí pro testovací prostředí při vytváření testovacího prostředí:

  1. Při vytváření prostředku DevTest Labs vyberte kartu Základní nastavení.

  2. V poli Veřejná prostředí vyberte Zapnuto.

    Snímek obrazovky znázorňující povolení veřejných prostředí pro nové testovací prostředí

Povolení nebo zakázání veřejných 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á. Povolení nebo zakázání úložiště veřejného prostředí pro existující testovací prostředí:

  1. V Azure Portal vyberte prostředek testovacího prostředí.

  2. V levém navigačním panelu vyberte Konfigurace a zásady .

  3. V levém navigačním panelu v části Základy virtuálních počítačů vyberte Veřejná prostředí.

  4. Pokud chcete povolit nebo zakázat veřejná prostředí pro testovací prostředí, vyberte Ano nebo Ne.

  5. Vyberte Uložit.

Výběr dostupných šablon veřejného prostředí

Když povolíte veřejná prostředí, budou pro vytváření prostředí k dispozici všechny šablony prostředí v úložišti. Povolení pouze konkrétních prostředí pro testovací prostředí:

  1. V Azure Portal vyberte prostředek testovacího prostředí.

  2. V levém navigačním panelu vyberte Konfigurace a zásady .

  3. V levém navigačním panelu v části Základy virtuálních počítačů vyberte Veřejná prostředí.

  4. Zrušte výběr konkrétních prostředí ze seznamu, aby byla pro uživatele testovacího prostředí nedostupná, a pak vyberte Uložit.

    Snímek obrazovky se seznamem veřejných prostředí pro testovací prostředí

Konfigurace uživatelských práv prostředí

Ve výchozím nastavení mají uživatelé testovacího prostředí v prostředích roli Čtenář a nemůžou měnit prostředky prostředí. Uživatelé například nemůžou zastavit nebo spustit prostředky. Pokud chcete uživatelům testovacího prostředí udělit roli Přispěvatel a umožnit jim upravovat prostředky prostředí:

  1. V Azure Portal vyberte prostředek testovacího prostředí.

  2. V levém navigačním panelu vyberte Konfigurace a zásady .

  3. V levém navigačním panelu vyberte Nastavení testovacího prostředí.

  4. V části Přístup k> prostředíUživatelská práva skupiny prostředků vyberte Přispěvatel a pak vyberte Uložit.

    Snímek obrazovky znázorňující konfiguraci oprávnění přispěvatele uživatele testovacího prostředí

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 nasazení prostředí automatizovat pomocí Azure PowerShell nebo Azure CLI.

K vytvoření prostředí můžete použít příkaz Azure CLI az deployment group create . Další informace najdete v tématu Nasazení prostředků pomocí šablon Resource Manager a Azure CLI.

Vlastníci a správci testovacího prostředí můžou pomocí Azure PowerShell vytvářet virtuální počítače a prostředí ze šablon ARM.

Poznámka

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. 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 PowerShell:

  1. Nechte šablonu prostředí ARM vrátit se změnami do úložiště Git a přidat úložiště do testovacího prostředí.

  2. Uložte do počítače následující skript PowerShellu jako deployenv.ps1. Tento skript volá šablonu ARM k 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 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. Spusťte skript a pomocí vlastních hodnot nahraďte ukázkové hodnoty pro:

    • SubscriptionId
    • LabName
    • ResourceGroupName
    • RepositoryName
    • TemplateName (složka šablon v úložišti Git)
    • EnvironmentName
    ./deployenv.ps1 -SubscriptionId "000000000-0000-0000-0000-0000000000000" -LabName "mydevtestlab" -ResourceGroupName "mydevtestlabRG000000" -RepositoryName "myRepository" -TemplateName "ARM template folder name" -EnvironmentName "myNewEnvironment"
    

Další kroky