Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Nutzen Sie Azure DevTest Labs-Umgebungen, um Labore einfach und konsistent mit mehreren virtuellen Maschinen (VMs) und Platform-as-a-Service-Ressourcen (PaaS) bereitzustellen. In diesem Artikel wird beschrieben, wie Sie DevTest Labs-Umgebungen aus Azure Resource Manager (ARM) -Vorlagen erstellen. Nutzen Sie diesen Ansatz, um ein Labor für eine Multi-Tier-Webanwendung zu erstellen, wie zum Beispiel eine Webanwendung mit einem SQL-Datenbank-Backend.
Ressourcen in einer DevTest Labs-Umgebung teilen denselben Lebenszyklus. Sie können sie gemeinsam verwalten und die Kosten einzelner PaaS-Ressourcen in der Laborumgebung genau so nachverfolgen, wie Sie die Kosten für einzelne virtuelle Computer nachverfolgen.
Sie können ein Lab für die Verwendung von ARM-Umgebungsvorlagen aus öffentlichen oder privaten Git-Vorlagenrepositorys konfigurieren. Das folgende Diagramm zeigt, wie DevTest Labs eine ARM-Vorlage aus einem öffentlichen oder privaten Repository verwendet, um eine Umgebung mit VMs und anderen Ressourcen bereitzustellen.
Voraussetzungen
- Um Vorlagenrepositorys für ein Lab hinzuzufügen oder zu konfigurieren, müssen Sie mindestens Mitwirkender-Berechtigungen im Labor haben.
- Um DevTest Labs-Umgebungen aus verfügbaren ARM-Vorlagen zu erstellen, gibt es zumindest DevTest-Benutzerrechte im Labor.
- Um das PowerShell-Skript in der automatisierten Umgebungserstellung auszuführen, wird Azure PowerShell mit dem
Az.ResourcesModul installiert.
Abonnementberechtigungen für die Vorlagenbereitstellung zuweisen
Wenn Ihre Organisation Berechtigungen auf Abonnementebene für die delegierte Vorlagenverwaltung benötigt, weisen Sie die Rolle Azure Lab Services Contributor auf Abonnementebene zu.
Important
Für die Erstellung einer DevTest Labs-Umgebung benötigen Labornutzer weiterhin mindestens DevTest-Benutzerberechtigungen für das Labor. Die Rolle Azure Lab Services Contributor ersetzt nicht die Laborberechtigungen auf DevTest Labs-Ebene.
- Im Azure-Portal öffnen Sie Ihr Abo.
- Wählen Sie Zugriffssteuerung (IAM)>Hinzufügen>Rollenvergabe hinzufügen.
- Suche nach und wähle Azure Lab Services Contributor.
- Wählen Sie Nächstes, wählen Sie Benutzer, Gruppe oder Service-Principal und wählen Sie dann Überprüfen + Zuweisen.
Für den Zugriff nach dem Least-Privilege-Prinzip verwenden Sie eine benutzerdefinierte Rolle, die nur die Berechtigungen enthält, die für Ihre Vorlage und Ihren Laborworkflow erforderlich sind, anstatt umfassende abonnementweite Berechtigungen zu gewähren.
Die folgende benutzerdefinierte Beispielrolle schränkt den Zugriff auf die Erstellung von DevTest Labs-Umgebungen sowie die Sichtbarkeit von Bereitstellungen ein. Füge nur die Aktionen hinzu, die deine Vorlage verlangt.
{
"Name": "DevTest Labs Environment Template Deployer",
"Description": "Create and read DevTest Labs environments from approved ARM templates.",
"Actions": [
"Microsoft.Authorization/*/read",
"Microsoft.DevTestLab/labs/read",
"Microsoft.DevTestLab/labs/EnsureCurrentUserProfile/action",
"Microsoft.DevTestLab/labs/CreateEnvironment/action",
"Microsoft.DevTestLab/labs/artifactSources/armTemplates/read",
"Microsoft.DevTestLab/labs/policySets/EvaluatePolicies/action",
"Microsoft.DevTestLab/labs/users/environments/read",
"Microsoft.DevTestLab/labs/users/environments/write",
"Microsoft.Resources/deployments/read",
"Microsoft.Resources/deployments/operations/read",
"Microsoft.Resources/subscriptions/resourceGroups/read"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/<subscription-id>"
]
}
Einschränkungen
Umgebungen, die aus ARM-Umgebungsvorlagen in DevTest Labs erstellt wurden, weisen die folgenden Einschränkungen auf:
Das Auto-Shutdown-Feature für VMs wird nicht unterstützt.
Die folgenden Laborrichtlinien werden nicht erzwungen oder ausgewertet:
- Anzahl der virtuellen Computer pro Lab-Benutzer
- Anzahl der Premium-VMs pro Benutzer
- Anzahl der Premium-Datenträger pro Benutzer
Selbst wenn die Lab-Richtlinie jedem Benutzer nur das Erstellen von maximal fünf virtuellen Computern zulässt, kann der Benutzer eine ARM-Umgebungsvorlage bereitstellen, die Dutzende von VMs erstellt.
Konfigurieren von Vorlagenrepositorys für Labore
Sie können Ihr Labor so konfigurieren, dass ARM-Umgebungsvorlagen aus dem öffentlichen Arm-Vorlagenrepository von DevTest Labs und anderen öffentlichen oder privaten Git-Repositorys verwendet werden. Wenn Sie den Laborzugriff auf ein Vorlagenrepository aktivieren, können Laborbenutzer schnell Umgebungen erstellen, indem sie Vorlagen im Azure-Portal auswählen.
Das öffentliche ARM-Template-Repository von DevTest Labs enthält vorgefertigte Umgebungsvorlagen wie Web App with SQL Database und Azure Service Fabric Cluster-Beispiele. Für eine reibungslose Benutzererfahrung mit PaaS-Ressourcen verfügen die Vorlagen über minimale Eingabeparameter.
Sie können die öffentlichen Umgebungsvorlagen unverändert verwenden oder sie an Ihre Bedürfnisse anpassen. Sie können auch Überarbeitungen oder Ergänzungen zu einer öffentlichen Vorlage vorschlagen, indem Sie einen Pull Request für das öffentliche GitHub-Vorlagenrepository übermitteln.
Sie können Umgebungsvorlagen auch in anderen öffentlichen oder privaten Git-Repositorys speichern und diese Repositorys zu Ihrer Übung hinzufügen, um die Vorlagen allen Lab-Benutzern zur Verfügung zu stellen. Anweisungen finden Sie unter Speichern von ARM-Vorlagen in Git-Repositorys und Hinzufügen von Vorlagenrepositorys zu Laboren.
Konfigurieren von Einstellungen für öffentliche Umgebungen
Sie können den Lab-Zugriff auf das öffentliche DevTest Labs-Vorlagen-Repository für ein neues oder vorhandenes Labor aktivieren. Wenn Sie den Zugriff auf das Repository aktivieren, können Sie auswählen, welche Umgebungsvorlagen für Lab-Benutzer zur Verfügung gestellt werden sollen.
Konfigurieren des Zugriffs auf öffentliche Umgebungen für ein neues Lab
Um den Zugriff auf öffentliche Umgebungs-Repositorys beim Erstellen eines neuen Labs zu konfigurieren, legen Sie auf der Registerkarte Grundeinstellungen die Option Öffentliche Umgebungen auf Ein oder Aus fest. Diese Option ist standardmäßig auf "Ein" festgelegt.
Konfigurieren des Zugriffs auf öffentliche Umgebungen für ein vorhandenes Lab
So aktivieren oder deaktivieren Sie den Zugriff auf öffentliche Umgebungs-Repositorys für ein vorhandenes Labor:
Wählen Sie auf der Seite "Übersicht" des Azure-Portals für Ihr Labor unter "Einstellungen" im linken Navigationsmenü die Option "Konfiguration und Richtlinien" aus.
Erweitern Sie auf der Seite "Konfiguration und Richtlinien " die Basis des virtuellen Computers im linken Menü, und wählen Sie "Öffentliche Umgebungen" aus.
Legen Sie auf der Seite "Öffentliche Umgebungen " die Option " Öffentliche Umgebungen für diese Übung aktivieren " auf "Ja " oder "Nein" fest.
Wählen Sie Speichern.
Auswählen verfügbarer Vorlagen für öffentliche Umgebungen
Wenn Sie das öffentliche Umgebungs-Repository für ein Lab aktivieren, sind alle Umgebungsvorlagen im Repository standardmäßig für Ihre Lab-Benutzer verfügbar. Sie können den Zugriff auf ausgewählte Vorlagen deaktivieren. Die deaktivierten Vorlagen werden nicht mehr in der Liste der Umgebungen angezeigt, die Benutzer erstellen können.
So verbieten Sie den Zugriff auf bestimmte Umgebungsvorlagen:
Deaktivieren Sie auf dem Azure-Portal Ihres Labors Konfiguration und Richtlinien>Basis virtueller Maschinen>Öffentliche Umgebungen die Kontrollkästchen neben den Umgebungen, die Sie deaktivieren möchten.
Wählen Sie Speichern.
Konfigurieren von Benutzerberechtigungen für die Umgebung
Standardmäßig werden Labornutzern in von ihnen erstellten Umgebungen die Rolle des Lesers zugewiesen. Leser können Umgebungsressourcen wie SQL-Server oder Datenbanken nicht beenden, starten oder ändern. Damit Labornutzer Ressourcen in ihren Umgebungen bearbeiten können, gewähren Sie ihnen die Rolle des Mitwirkenden in der Ressourcengruppe ihrer Umgebung.
Wählen Sie auf der Seite "Übersicht" des Azure-Portals für Ihr Labor unter "Einstellungen" im linken Navigationsmenü die Option "Konfiguration und Richtlinien" aus.
Erweitern Sie auf der Seite Konfiguration und Richtlinien im linken Menü den Punkt Einstellungen und wählen Sie Lab-Einstellungen aus.
Legen Sie auf der Seite "Lab-Einstellungen" unter "Umgebungszugriff" die Option " Benutzerrechte der Ressourcengruppe " auf "Mitwirkender" fest.
Wählen Sie Speichern.
Erstellen von Umgebungen anhand von Vorlagen
Wenn Sie Ihr Labor so konfigurieren, dass öffentliche oder private Template-Repositorien verwendet werden, können Sie eine Umgebung erstellen, indem Sie eine verfügbare ARM-Vorlage auswählen. Führen Sie die folgenden Schritte aus, um eine Umgebung aus einer Vorlage zu erstellen.
Wählen Sie auf der Seite "Übersicht" des Azure-Portals für Ihr Labor im linken Navigationsmenü "Meine Umgebungen" unter "My Lab" aus.
Wählen Sie auf der Seite "Meine Umgebungen"die Option "Hinzufügen" aus.
Auf der Seite Basis auswählen wählen Sie Web App mit SQL-Datenbank.
Im Hinzufügen-Fenster geben Sie einen Umweltnamen ein und konfigurieren Sie die anderen Parametereinstellungen für die Webanwendung und SQL-Datenbankressourcen.
- Jede ARM-Umgebungsvorlage enthält eindeutige Parameter. Wenn Sie eine Umgebung hinzufügen, müssen Sie Werte für alle erforderlichen Parameter eingeben, die durch rote Sternchen gekennzeichnet sind.
- Einige Parameterwerte in einer azuredeploy.parameters.json ARM-Vorlagendatei erzeugen leere Einstellungsfelder ohne Standardwert im Bereich "Hinzufügen" . Diese Werte umfassen
GEN-UNIQUE, ,GEN-UNIQUE-[N],GEN-SSH-PUB-KEYundGEN-PASSWORD. - Sie können geheime Schlüssel aus Azure Key Vault für sichere Zeichenfolgenparameter wie Kennwörter verwenden. Weitere Informationen finden Sie unter Speichern geheimer Schlüssel im Azure Key Vault.
Wählen Sie Hinzufügen aus. Die Umgebungsbereitstellung wird sofort gestartet.
Der Prozess für die Bereitstellung einer Umgebung kann eine lange Zeit in Anspruch nehmen. Die Gesamtzeit hängt von der Anzahl der Dienstinstanzen, VMs und anderen Ressourcen ab, die DevTest Labs als Teil der Lab-Umgebung erstellt.
Sie können den Bereitstellungsstatus auf der Seite "Meine Umgebungen" überwachen. Wählen Sie auf der Symbolleiste "Aktualisieren" aus, um die Seitenansicht zu aktualisieren und den aktuellen Status zu überprüfen. Während die Bereitstellung ausgeführt wird, ist der Umgebungsstatus Erstellen. Nach Abschluss der Bereitstellung ändert sich der Status in Bereit.
Bei der Bereitstellung wird eine neue Ressourcengruppe erstellt, um alle Umgebungsressourcen bereitzustellen, die die ARM-Vorlage definiert hat. Wählen Sie die Umgebung in der Liste "Meine Umgebungen " aus, um die Ressourcengruppe und alle von der Vorlage erstellten Ressourcen anzuzeigen.
Wählen Sie eine Ressource in der Liste aus, um Eigenschaften und verfügbare Aktionen zu sehen.
Automatische Erstellung von Umgebungen
Wenn Sie mehrere Umgebungen für Entwicklungs- oder Testszenarien erstellen müssen, können Sie Azure PowerShell oder die Azure CLI verwenden, um die Bereitstellung von Umgebungen anhand von ARM-Vorlagen zu automatisieren. Die folgenden Schritte zeigen, wie Sie die Bereitstellung von ARM-Umgebungsvorlagen mithilfe des Azure PowerShell-Befehls New-AzResource automatisieren.
Sie können die Bereitstellung auch automatisieren, indem Sie den Befehl zum Erstellen der Azure CLI az-Bereitstellungsgruppe verwenden . Weitere Informationen finden Sie unter Bereitstellen von Ressourcen mit ARM-Vorlagen und der Azure CLI.
Speichern Sie die ARM-Umgebungsvorlage in einem Git-Repository und fügen Sie das Repository zu Ihrem Labor hinzu.
Speichern Sie das folgende PowerShell-Skript auf Ihrem Computer als deployenv.ps1. 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 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."Um das Skript zu verwenden, führen Sie den folgenden Befehl aus. Aktualisieren Sie die Platzhalter im Befehl mit Ihren eigenen Labordatenwerten.
.\DeployLabEnvironment.ps1 ` -SubscriptionId "<Subscription ID>" ` -LabName "<LabName>" ` -ResourceGroupName "<LabResourceGroupName>" ` -RepositoryName "<TemplateRepoName>" ` -TemplateName "<TemplateFolderName>" ` -EnvironmentName "<EnvironmentName>"