Delen via


Azure DevTest Labs-omgevingen maken op basis van ARM-sjablonen

In dit artikel leert u hoe u Azure DevTest Labs-omgevingen maakt op basis van ARM-sjablonen (Azure Resource Manager). U kunt DevTest Labs-omgevingen gebruiken om eenvoudig en consistent labs in te richten met meerdere virtuele machines (VM's) of PaaS-resources (Platform-as-a-Service). U kunt deze methode gebruiken om een lab te maken voor een webtoepassing met meerdere lagen of een SharePoint-farm.

Resources in een DevTest Labs-omgeving delen dezelfde levenscyclus en u kunt ze samen beheren. U kunt de kosten van testomgevingen en PaaS-resources op dezelfde manier bijhouden als u de kosten voor afzonderlijke lab-VM's bijhoudt.

U kunt Azure DevTest Labs configureren voor het gebruik van ARM-sjablonen vanuit een openbare of persoonlijke GitHub-opslagplaats. In het volgende diagram ziet u hoe u een omgeving maakt met DevTest Labs op basis van een ARM-sjabloon in een openbare of aangepaste sjabloonopslagplaats. In de sectie sjabloonopslagplaatsen voor labs wordt dit proces gedetailleerd beschreven.

Diagram waarin wordt getoond hoe u een omgeving maakt met DevTest Labs met behulp van een ARM-sjabloon in een sjabloonopslagplaats.

Notitie

Azure Deployment Environments (ADE) wordt ten zeerste aanbevolen voor het maken van omgevingen. Met ADE kunnen ontwikkelaars snel app-infrastructuur implementeren met behulp van projectsjablonen, waardoor consistente en veilige omgevingen voor uw ontwikkelteams worden gegarandeerd.

Zie de documentatie over Azure Deployment Environments voor meer informatie over Azure Deployment Environments.

Vereisten

  • Het is handig om ervaring te hebben met het configureren van labomgevingen in DevTest Labs. Als u niet bekend bent met het werken met labs, bekijkt u eerst de instructies in de sectie Openbare omgevingsinstellingen configureren. U moet weten hoe u sjabloonopslagplaatsen configureert, openbare omgevingen inschakelt of uitschakelt en sjablonen selecteert om labs te maken.

Beperkingen

Er zijn enkele beperkingen om rekening mee te houden wanneer u labs maakt op basis van ARM-sjablonen in DevTest Labs:

  • DevTest Labs biedt geen ondersteuning voor de functie voor automatisch afsluiten van virtuele machines (VM) voor PaaS-resources die zijn gemaakt op basis van ARM-sjablonen.

  • DevTest Labs evalueert niet alle labbeleidsregels wanneer u ARM-sjablonen implementeert. Het volgende beleid wordt niet geëvalueerd:

    • Aantal VM's per labgebruiker
    • Aantal premium-VM's per gebruiker
    • Aantal Premium-bureaus per gebruiker

    Stel dat u een labbeleid hebt waarmee elke gebruiker maximaal vijf VM's kan maken. In DevTest Labs kan elke gebruiker een ARM-omgevingssjabloon implementeren waarmee tientallen VM's worden gemaakt.

Omgevingen maken op een sjabloon

U kunt een omgeving maken vanuit de openbare sjabloonopslagplaats van Azure DevTest Labs of u kunt een privésjabloonopslagplaats toevoegen aan uw lab.

Maak een omgeving op basis van een sjabloon door de volgende stappen uit te voeren:

  1. Ga in Azure Portal naar uw DevTest Labs-labresource.

  2. Vouw op de pagina Overzicht van lab de sectie Mijn lab in het linkermenu uit en selecteer Mijn omgevingen.

  3. Selecteer Op de pagina Mijn omgevingen de optie Toevoegen op de werkbalk.

  4. Selecteer op de basispagina Een basispagina kiezen de ARM-omgevingssjabloon die u wilt gebruiken:

    Schermopname van de ARM-sjablonen voor de openbare omgeving die beschikbaar zijn voor de DevTest Labs-labresource.

  5. Voer in het deelvenster Toevoegen een omgevingsnaam in en configureer de andere parameterinstellingen.

    Het type en het aantal parameters is uniek voor elke ARM-sjabloon. Een rood sterretje (*) geeft een vereiste instelling aan. U moet waarden invoeren voor alle vereiste instellingen.

    Sommige parameterwaarden in het ARM-sjabloonbestand (azuredeploy.parameters.json) produceren lege instellingsvelden in het deelvenster Toevoegen (geen standaardwaarde). Deze parameterwaarden omvattenGEN-UNIQUE, GEN-UNIQUE-[N], en GEN-SSH-PUB-KEYGEN-PASSWORD.

    Schermopname van het deelvenster Toevoegen met instellingen die moeten worden geconfigureerd voor een SharePoint-omgeving.

    Voor beveiligde tekenreeksparameters , zoals wachtwoorden, kunt u geheimen uit Azure Key Vault gebruiken. Zie Geheimen opslaan in Azure Key Vault voor meer informatie over het opslaan van geheimen in een sleutelkluis en deze gebruiken wanneer u labbronnen maakt.

  6. Selecteer Toevoegen om de omgeving te maken. De omgeving wordt onmiddellijk ingericht.

    Notitie

    Het proces voor het inrichten van een omgeving kan lang duren. De totale tijd is afhankelijk van het aantal service-exemplaren, VM's en andere resources dat DevTest Labs maakt als onderdeel van de testomgeving.

  7. Als u de inrichtingsstatus wilt bewaken, gaat u terug naar de pagina Mijn omgevingen voor het lab:

    Schermopname die laat zien hoe u de inrichtingsstatus voor de labomgeving kunt zien.

    Terwijl het inrichten wordt uitgevoerd, wordt de omgevingsstatus gemaakt. Nadat de inrichting is voltooid, wordt de status gewijzigd in Gereed. U kunt Vernieuwen op de werkbalk selecteren om de paginaweergave bij te werken en de huidige status te controleren.

  8. Wanneer de omgeving gereed is, kunt u de omgeving uitbreiden in de lijst Mijn omgevingen om de VM's te zien die door de sjabloon zijn ingericht:

    Schermopname van de lijst met vm's die zijn gemaakt voor de zojuist ingerichte omgeving.

  9. De implementatie maakt een nieuwe resourcegroep voor het inrichten van alle omgevingsresources die zijn gedefinieerd door de ARM-sjabloon. Selecteer de omgevingsnaam in de lijst Mijn omgevingen om de resourcegroep en alle resources weer te geven die door de sjabloon zijn gemaakt:

    Schermopname van de resourcegroep met alle omgevingsresources, waaronder VM's, schijven, het virtuele netwerk en meer.

  10. Selecteer een omgevings-VM in de lijst om beschikbare acties voor de VIRTUELE machine weer te geven, zoals het beheren van configuratie, planningen en beleidsregels:

    Schermopname van beschikbare acties voor de geselecteerde omgevings-VM.

Sjabloonopslagplaatsen verkennen

De ARM-sjablonen voor het maken van omgevingen in DevTest Labs zijn beschikbaar vanuit twee bronnen:

Instellingen voor openbare omgevingen configureren

U kunt uw lab configureren om het gebruik van sjablonen in te schakelen vanuit de GitHub-opslagplaats voor openbare sjablonen. Wanneer u de openbare sjabloonopslagplaats voor een lab inschakelt, kunnen gebruikers snel een labomgeving maken door deze sjablonen rechtstreeks in Azure Portal te selecteren, vergelijkbaar met hoe ze een virtuele machine in een lab maken. Daarnaast kunt u selecteren welke sjablonen beschikbaar zijn voor gebruikers om labomgevingen te maken.

Openbare omgevingstoegang instellen voor een nieuw lab

Configureer de toegang tot openbare omgevingsopslagplaats voor een nieuw lab door de volgende stappen uit te voeren:

  1. Selecteer tijdens het proces voor het maken van een DevTest Labs-resource het tabblad Basisinstellingen .

  2. Stel de optie Openbare omgevingen in op Aan:

    Schermopname van het inschakelen van openbare omgevingsopslagplaatsen voor een lab tijdens het maken van het lab.

Openbare omgevingstoegang instellen voor bestaande labs

Voor bestaande labs of labs die u met een ARM-sjabloon maakt, zijn openbare omgevingen mogelijk niet ingeschakeld. U kunt de toegang tot openbare omgevingsopslagplaatsen voor elk bestaand lab beheren met de optie Openbare omgevingen inschakelen voor dit lab .

Volg deze stappen om de toegang tot de openbare omgevingsopslagplaats voor een bestaand lab in of uit te schakelen:

  1. Ga in Azure Portal naar uw DevTest Labs-labresource waar u openbare omgevingstoegang wilt instellen.

  2. Vouw op de pagina Overzicht van het lab de sectie Instellingen in het linkermenu uit en selecteer Configuratie en beleid.

  3. Vouw op de pagina Configuratie en beleid de sectie Virtuele-machinebasissen uit in het linkermenu en selecteer Openbare omgevingen.

  4. Stel op de pagina Openbare omgevingen de optie Openbare omgevingen inschakelen voor deze laboptie in op Ja:

    Schermopname van het inschakelen van alle openbare omgevingsopslagplaatsen voor een bestaande labresource.

  5. Selecteer Opslaan.

Beschikbare openbare omgevingssjablonen selecteren

Wanneer u de optie Openbare omgevingen inschakelen voor dit lab instelt om de toegang tot openbare omgevingen voor uw lab te beheren, worden standaard alle omgevingssjablonen geselecteerd. Met de optie-instelling is toegang tot alle omgevingen toegestaan of niet toegestaan op basis van uw selectie. U kunt de selectievakjes in de lijst gebruiken om op te geven welke omgevingen uw gebruikers kunnen openen.

Volg deze stappen om alleen toegang tot specifieke omgevingen voor het lab toe te staan:

  1. Stel op de pagina Openbare omgevingen de optie Openbare omgevingen inschakelen voor deze laboptie in op Ja.

  2. Deselecteer specifieke omgevingen in de lijst om ze niet beschikbaar te maken voor labgebruikers:

    Schermopname van het opheffen van de selectie van openbare omgevingsopslagplaatsen voor een lab om de toegang voor gebruikers uit te schakelen.

  3. Selecteer Opslaan.

Gebruikersrechten voor de omgeving configureren

Labgebruikers krijgen standaard de rol Lezer toegewezen in openbare omgevingsopslagplaatsen. Ze kunnen geen omgevingsbronnen wijzigen en ze kunnen resources niet stoppen of starten.

Gebruik de volgende stappen om labgebruikers de rol Inzender te geven en hen toe te staan omgevingsbronnen te bewerken:

  1. Ga in Azure Portal naar uw DevTest Labs-labresource waar u gebruikersroltoewijzingen wilt aanpassen.

  2. Vouw op de pagina Overzicht van het lab de sectie Instellingen in het linkermenu uit en selecteer Configuratie en beleid.

  3. Vouw op de pagina Configuratie en beleid de sectie Instellingen in het linkermenu uit en selecteer Lab-instellingen.

  4. Stel op de pagina Labinstellingen de optie Gebruikersrechten van de resourcegroep voor omgevingstoegang>in op Inzender:

    Schermopname van het instellen van rolmachtigingen voor inzenders voor labgebruikers in DevTest Labs.

  5. Selecteer Opslaan.

Automatiseer het maken van omgevingen

Als u meerdere omgevingen moet maken voor ontwikkelings- of testscenario's, kunt u de implementatie van de omgeving automatiseren met Azure PowerShell of de Azure CLI.

Labeigenaren en -beheerders kunnen Azure PowerShell gebruiken om VM's en omgevingen te maken op basis van ARM-sjablonen. U kunt de implementatie ook automatiseren via de Azure CLI met behulp van de opdracht az deployment group create om omgevingen te maken. Zie Resources implementeren met ARM-sjablonen en de Azure CLI voor meer informatie.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Automatiseer de implementatie van ARM-omgevingssjablonen met Azure PowerShell met de volgende stappen:

  1. Sla de ARM-omgevingssjabloon op in een GitHub-opslagplaats.

  2. Voeg de GitHub ARM-sjabloonopslagplaats toe aan uw lab.

  3. Sla het volgende PowerShell-script op uw computer op met de bestandsnaam deployenv.ps1. Met dit script wordt de ARM-sjabloon aanroepen om de omgeving in het lab te maken.

    #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. Werk de volgende tijdelijke aanduidingen in het script bij met uw eigen labwaarden:

    • SubscriptionId
    • LabName
    • ResourceGroupName
    • RepositoryName
    • TemplateName (sjabloonmap in de GitHub-opslagplaats)
    • EnvironmentName

    Het volgende codefragment laat zien hoe u het script uitvoert met voorbeeldparameterwaarden:

    ./deployenv.ps1 -SubscriptionId "000000000-0000-0000-0000-0000000000000" -LabName "mydevtestlab" -ResourceGroupName "mydevtestlabRG000000" -RepositoryName "myRepository" -TemplateName "ARM template folder name" -EnvironmentName "myNewEnvironment"
    
  5. Voer het script uit.