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.
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:
Ga in Azure Portal naar uw DevTest Labs-labresource.
Vouw op de pagina Overzicht van lab de sectie Mijn lab in het linkermenu uit en selecteer Mijn omgevingen.
Selecteer Op de pagina Mijn omgevingen de optie Toevoegen op de werkbalk.
Selecteer op de basispagina Een basispagina kiezen de ARM-omgevingssjabloon die u wilt gebruiken:
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 omvatten
GEN-UNIQUE
,GEN-UNIQUE-[N]
, enGEN-SSH-PUB-KEY
GEN-PASSWORD
.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.
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.
Als u de inrichtingsstatus wilt bewaken, gaat u terug naar de pagina Mijn omgevingen voor het lab:
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.
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:
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:
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:
Sjabloonopslagplaatsen verkennen
De ARM-sjablonen voor het maken van omgevingen in DevTest Labs zijn beschikbaar vanuit twee bronnen:
DevTest Labs heeft een openbare ARM-sjabloonopslagplaats met vooraf geverifieerde omgevingssjablonen voor Azure Web Apps, een Azure Service Fabric-cluster en SharePoint-farms ontwikkelen. De sjablonen hebben minimale invoerparameters voor een soepele aan de slag-ervaring met PaaS-resources. U kunt de sjablonen voor openbare omgevingen naar wens gebruiken of aanpassen aan uw behoeften. U kunt ook revisies of toevoegingen aan een openbare sjabloon voorstellen door een pull-aanvraag in te dienen bij de opslagplaats met openbare GitHub-sjablonen.
U kunt omgevingssjablonen opslaan in uw eigen openbare of persoonlijke GitHub-opslagplaatsen en deze opslagplaatsen toevoegen aan uw lab om uw sjablonen beschikbaar te maken voor alle labgebruikers.
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:
Selecteer tijdens het proces voor het maken van een DevTest Labs-resource het tabblad Basisinstellingen .
Stel de optie Openbare omgevingen in op Aan:
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:
Ga in Azure Portal naar uw DevTest Labs-labresource waar u openbare omgevingstoegang wilt instellen.
Vouw op de pagina Overzicht van het lab de sectie Instellingen in het linkermenu uit en selecteer Configuratie en beleid.
Vouw op de pagina Configuratie en beleid de sectie Virtuele-machinebasissen uit in het linkermenu en selecteer Openbare omgevingen.
Stel op de pagina Openbare omgevingen de optie Openbare omgevingen inschakelen voor deze laboptie in op Ja:
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:
Stel op de pagina Openbare omgevingen de optie Openbare omgevingen inschakelen voor deze laboptie in op Ja.
Deselecteer specifieke omgevingen in de lijst om ze niet beschikbaar te maken voor labgebruikers:
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:
Ga in Azure Portal naar uw DevTest Labs-labresource waar u gebruikersroltoewijzingen wilt aanpassen.
Vouw op de pagina Overzicht van het lab de sectie Instellingen in het linkermenu uit en selecteer Configuratie en beleid.
Vouw op de pagina Configuratie en beleid de sectie Instellingen in het linkermenu uit en selecteer Lab-instellingen.
Stel op de pagina Labinstellingen de optie Gebruikersrechten van de resourcegroep voor omgevingstoegang>in op Inzender:
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:
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."
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"
Voer het script uit.