Erstellen von Azure DevTest Labs-Umgebungen aus ARM-Vorlagen

In diesem Artikel erfahren Sie, wie Sie Azure DevTest Labs-Umgebungen aus ARM-Vorlagen (Azure Resource Manager) erstellen. Sie können DevTest Labs-Umgebungen verwenden, um Labs einfach und konsistent mit mehreren virtuellen Computern (VMs) oder PaaS-Ressourcen (Platform-as-a-Service) bereitzustellen. Beispielsweise, um ein Lab für eine Webanwendung mit mehreren Ebenen oder eine SharePoint-Farm zu erstellen.

Ressourcen in einer Umgebung teilen sich denselben Lebenszyklus, und Sie können sie gemeinsam verwalten. Sie können die Kosten für Lab-Umgebungen und PaaS-Ressourcen genau wie die Kosten für einzelne Lab-VMs nachverfolgen.

Sie können Azure DevTest Labs für die Verwendung von ARM-Vorlagen aus einem öffentlichen oder privaten Git-Repository konfigurieren. Erfahren Sie mehr über Vorlagenrepositorys für Labs.

Diagramm: Erstellen einer Umgebung mit Azure DevTest Labs aus einer ARM-Vorlage in einem öffentlichen oder benutzerdefinierten Vorlagenrepository.

Wenn Sie eine ARM-Vorlage zum Erstellen einer Azure DevTest Labs-Ressource verwenden möchten, lesen Sie Schnellstart: Verwenden einer ARM-Vorlage zum Erstellen eines Labs in DevTest Labs.

Einschränkungen

Beachten Sie diese Einschränkungen, wenn Sie Labs aus ARM-Vorlagen in DevTest Labs erstellen:

  • Das automatische Herunterfahren für VMs gilt nicht für PaaS-Ressourcen.

  • Nicht alle Labrichtlinien werden beim Bereitstellen von ARM-Vorlagen ausgewertet. Zu den Richtlinien, die nicht ausgewertet werden, gehören die Anzahl der VMs pro Labbenutzer, die Anzahl der Premium-VMs pro Benutzer und die Anzahl der Premium-Datenträger pro Benutzer. Beispielsweise kann Ihre Lab-Richtlinie Benutzer auf nur fünf VMs beschränken. Allerdings kann ein Benutzer eine ARM-Vorlage bereitstellen, die Dutzende von VMs erstellt.

Erstellen von Umgebungen anhand von Vorlagen

Sie können eine Umgebung aus dem öffentlichen Azure DevTest Labs-Vorlagenrepository erstellen oder Ihrem Lab ein privates Vorlagenrepository hinzufügen.

Erfahren Sie, wie Sie Umgebungen für Ihr Lab konfigurieren. Beispielsweise erfahren Sie, wie Sie die Vorlagenrepositorys konfigurieren, öffentliche Umgebungen aktivieren oder deaktivieren und bestimmte Vorlagen zum Erstellen von Labs auswählen.

So erstellen Sie eine Umgebung anhand einer Vorlage

  1. Wählen Sie im Azure-Portal Ihre Labressource aus.

  2. Wählen Sie auf der Seite Übersicht Ihres Labs auf der oberen Symbolleiste die Option Hinzufügen aus.

  3. Wählen Sie auf der Seite Basis auswählen die zu verwendende ARM-Umgebungsvorlage aus. Die verfügbaren Umgebungsvorlagen werden ganz oben in der Liste der Basen angezeigt.

    Screenshot: Vorlagen für öffentliche Umgebungen

  4. Geben Sie auf dem Bildschirm Hinzufügen einen Umgebungsnamen ein, und füllen Sie die anderen Eingabefelder aus.

    Anzahl und Typ der Eingabefelder werden in der ARM-Vorlage definiert. Geben Sie bei Bedarf Werte für Eingabefelder ein, die in der Vorlagendatei azuredeploy.parameters.json leer sind oder den Standardwert verwenden.

    • Für secure string-Parameter können Sie Geheimnisse aus Azure Key Vault verwenden. Informationen zum Speichern von Geheimnissen in einem Schlüsseltresor und deren Verwendung beim Erstellen von Lab-Ressourcen finden Sie unter Speichern von Geheimnissen in Azure Key Vault.

    • In ARM-Vorlagendateien generieren die Parameterwerte GEN-UNIQUE, GEN-UNIQUE-[N], GEN-SSH-PUB-KEY und GEN-PASSWORD leere Eingabefelder, damit Benutzer Werte eingeben können.

    Screenshot, der den Bereich „Hinzufügen“ für eine SharePoint-Umgebung zeigt.

  5. Wählen Sie Hinzufügen aus, um die Umgebung zu erstellen.

    Die Umgebungsbereitstellung wird sofort gestartet. Auf der Seite Übersicht des Labs können Sie im Abschnitt Meine Umgebungen den Bereitstellungsstatus anzeigen. Die Bereitstellung einer Umgebung kann sehr lange dauern.

  6. Nachdem die Umgebung erstellt wurde, erweitern Sie die Umgebung unter Meine Umgebungen, um die Liste der VMs und andere Ressourcen anzuzeigen, die von der Vorlage bereitgestellt wurden.

    Screenshot, der die Liste der VMs unter einer Umgebung zeigt.

    Die Bereitstellung erstellt eine neue Ressourcengruppe zum Bereitstellen aller Umgebungsressourcen, die in der ARM-Vorlage definiert werden. Wählen Sie unter Meine Umgebungen den Umgebungsnamen aus, um die Ressourcengruppe und alle Ressourcen anzuzeigen, die von der Vorlage erstellt wurden.

    Screenshot, der die Ressourcengruppe mit allen Umgebungsressourcen zeigt.

  7. Wählen Sie eine VM der Umgebung aus, um verfügbare Aktionen für die VM anzuzeigen, z. B. das Verwalten von Konfiguration, Zeitplänen und Richtlinien.

    Screenshot mit den verfügbaren Aktionen für eine Umgebungs-VM.

Repositorys für Umgebungsvorlagen

Mit Azure DevTest Labs können Sie Umgebungen aus ARM-Vorlagen erstellen. Die ARM-Vorlagen können aus zwei Quellen stammen:

Tipp

Um Revisionen oder Ergänzungen für die öffentlichen Vorlagen vorzuschlagen, übermitteln Sie einen Pull Request für das Open-Source-GitHub-Repository für öffentliche Vorlagen.

Konfigurieren von Einstellungen für die öffentliche Umgebung für Ihr Lab

Sie können Ihr Lab so konfigurieren, dass die Verwendung von Vorlagen aus dem Repository öffentlicher Vorlagen aktiviert wird. Wenn Sie das Repository öffentlicher Vorlagen für ein Lab aktivieren, können Benutzer schnell eine Umgebung erstellen, indem sie diese Vorlagen direkt im Azure-Portal auswählen, ähnlich wie sie einen virtuellen Computer in einem Lab erstellen.

Darüber hinaus können Sie auswählen, aus welchen Vorlagen Benutzer Umgebungen erstellen können.

Aktivieren öffentlicher Umgebungen beim Erstellen eines Labs

So aktivieren Sie den Zugriff auf Repositorys für öffentliche Umgebungen für ein Lab, wenn Sie ein Lab erstellen:

  1. Wählen Sie die Registerkarte Grundeinstellungen aus, wenn Sie eine DevTest Labs-Ressource erstellen.

  2. Wählen Sie im Feld Öffentliche Umgebungen die Option Ein aus.

    Screenshot, der die Aktivierung öffentlicher Umgebungen für ein neues Lab zeigt.

Aktivieren oder Deaktivieren öffentlicher Umgebungen für vorhandene Labs

Für vorhandene Labs oder Labs, die Sie mit einer ARM-Vorlage erstellen, sind öffentliche Umgebungen möglicherweise nicht aktiviert. So aktivieren oder deaktivieren Sie das öffentliche Umgebungsrepository für vorhandene Labs

  1. Wählen Sie im Azure-Portal Ihre Labressource aus.

  2. Wählen Sie im linken Navigationsbereich die Option Konfiguration und Richtlinien aus.

  3. Wählen Sie im linken Navigationsbereich unter Basen virtueller Computer die Option Öffentliche Umgebungen aus.

  4. Wählen Sie Ja oder Nein unter Öffentliche Umgebungen für dieses Lab aktivieren aus, um öffentliche Umgebungen für das Lab zu aktivieren oder deaktivieren.

  5. Wählen Sie Speichern aus.

Auswählen verfügbarer Vorlagen für öffentliche Umgebungen

Wenn Sie öffentliche Umgebungen aktivieren, sind standardmäßig alle Umgebungsvorlagen im Repository zum Erstellen von Umgebungen verfügbar. So lassen Sie nur bestimmte Umgebungen für ein Lab zu:

  1. Wählen Sie im Azure-Portal Ihre Labressource aus.

  2. Wählen Sie im linken Navigationsbereich die Option Konfiguration und Richtlinien aus.

  3. Wählen Sie im linken Navigationsbereich unter Basen virtueller Computer die Option Öffentliche Umgebungen aus.

  4. Deaktivieren Sie bestimmte Umgebungen aus der Liste, damit sie für Labbenutzer nicht verfügbar sind, und wählen Sie dann Speichern aus.

    Screenshot: Liste der öffentlichen Umgebungen für ein Lab.

Konfigurieren der Rechte von Umgebungsbenutzern

Labbenutzer verfügen in Umgebungen standardmäßig über die Rolle Leser und können die Umgebungsressourcen nicht ändern. Beispielsweise können Benutzer Ressourcen nicht beenden oder starten. So weisen Sie Labbenutzern die Rolle Mitwirkender zu, damit sie Umgebungsressourcen bearbeiten dürfen:

  1. Wählen Sie im Azure-Portal Ihre Labressource aus.

  2. Wählen Sie im linken Navigationsbereich die Option Konfiguration und Richtlinien aus.

  3. Wählen Sie im linken Navigationsbereich Lab-Einstellungen aus.

  4. Wählen Sie unter Umgebungszugriff>Benutzerrechte für Ressourcengruppe die Rolle Mitwirkender und dann Speichern aus.

    Screenshot, der die Konfiguration der Mitwirkender-Berechtigungen für einen Labbenutzer zeigt.

Automatische Umgebungserstellung

Wenn Sie mehrere Umgebungen für Entwicklungs- oder Testszenarien erstellen müssen, können Sie die Umgebungsbereitstellung mithilfe von Azure PowerShell oder der Azure CLI automatisieren.

Sie können den Azure CLI-Befehl az deployment group create verwenden, um Umgebungen zu erstellen. Informationen hierzu finden Sie unter Bereitstellen von Ressourcen mit Azure Resource Manager-Vorlagen und Azure CLI.

Lab-Besitzer und -Administratoren können Azure PowerShell verwenden, um VMs und Umgebungen anhand von ARM-Vorlagen zu erstellen.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

So automatisieren Sie die Bereitstellung von ARM-Umgebungsvorlagen mit Azure PowerShell

  1. Lassen Sie eine ARM-Umgebungsvorlage in ein Git-Repository einchecken und das Repository zum Lab hinzufügen.

  2. Speichern Sie das folgende PowerShell-Skript als deployenv.ps1 auf Ihrem Computer. Dieses Skript ruft die ARM-Vorlage auf, um die Umgebung im Lab zu erstellen.

    #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. Führen Sie das Skript aus, und ersetzen Sie die folgenden Beispielwerte durch Ihre eigenen Werte:

    • SubscriptionId
    • LabName
    • ResourceGroupName
    • RepositoryName
    • TemplateName (Vorlagenordner im Git-Repository)
    • EnvironmentName
    ./deployenv.ps1 -SubscriptionId "000000000-0000-0000-0000-0000000000000" -LabName "mydevtestlab" -ResourceGroupName "mydevtestlabRG000000" -RepositoryName "myRepository" -TemplateName "ARM template folder name" -EnvironmentName "myNewEnvironment"
    

Nächste Schritte