Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez utiliser des environnements Azure DevTest Labs pour approvisionner facilement et de manière cohérente des labos avec plusieurs machines virtuelles et ressources PaaS (platform-as-a-service). Cet article explique comment créer des environnements DevTest Labs à partir de modèles Azure Resource Manager (ARM ). Vous pouvez utiliser cette approche pour créer un laboratoire pour une application web multiniveau ou une batterie de serveurs SharePoint.
Les ressources d’un environnement DevTest Labs partagent le même cycle de vie. Vous pouvez les gérer ensemble et suivre le coût des ressources PaaS individuelles dans l’environnement lab, tout comme vous effectuez le suivi des coûts des machines virtuelles individuelles.
Vous pouvez configurer un laboratoire pour utiliser des modèles d’environnement ARM à partir de référentiels de modèles Git publics ou privés. Le diagramme suivant montre comment DevTest Labs utilise un modèle ARM à partir d’un référentiel public ou privé pour déployer un environnement contenant des machines virtuelles et d’autres ressources.
Remarque
Si vous devez gérer des ressources, des stratégies et des paramètres de sécurité PaaS à l’échelle de l’entreprise, ou l’intégration CI/CD à travers les étapes de déploiement et les applications, envisagez d’utiliser les environnements de déploiement Azure (ADE) pour créer des environnements. ADE permet aux développeurs de déployer rapidement l’infrastructure d’application à l’aide de modèles basés sur des projets, en garantissant des environnements cohérents et sécurisés pour vos équipes de développement. Pour plus d’informations, consultez la documentation sur les environnements de déploiement Azure.
Prérequis
- Pour ajouter ou configurer des référentiels de modèles pour un laboratoire, des autorisations d'au moins contributeur sont requises dans le laboratoire.
- Pour créer des environnements Azure DevTest à partir de modèles ARM disponibles, au moins des autorisations utilisateur DevTest dans le labo.
- Pour exécuter le script PowerShell dans Automatiser la création d’un environnement, Azure PowerShell avec le
Az.Resourcesmodule installé.
Limites
Les environnements créés à partir de modèles d’environnement ARM dans DevTest Labs présentent les limitations suivantes :
La fonctionnalité d'extinction automatique pour les VMs n'est pas compatible.
Les stratégies de laboratoire suivantes ne sont pas appliquées ou évaluées :
- Nombre de machines virtuelles par utilisateur de labo
- Nombre de machines virtuelles Premium par utilisateur
- Nombre de disques Premium par utilisateur
Par exemple, même si la stratégie de laboratoire permet uniquement à chaque utilisateur de créer un maximum de cinq machines virtuelles, l’utilisateur peut déployer un modèle d’environnement ARM qui crée des dizaines de machines virtuelles.
Configurer des référentiels de modèles pour les laboratoires
Vous pouvez configurer votre laboratoire pour utiliser des modèles d’environnement ARM à partir du référentiel de modèles ARM public DevTest Labs et à partir d’autres référentiels Git publics ou privés. Lorsque vous activez l’accès lab à un référentiel de modèles, les utilisateurs du labo peuvent rapidement créer des environnements en sélectionnant des modèles dans le portail Azure, comme pour créer des machines virtuelles.
Le référentiel de modèles ARM public DevTest Labs inclut des modèles d’environnement pré-authentifiés pour Azure Web Apps, un cluster Azure Service Fabric et des batteries de serveurs SharePoint de développement. Pour une expérience de prise en main fluide avec les ressources PaaS, les modèles ont des paramètres d’entrée minimal.
Vous pouvez utiliser les modèles d’environnement public tels quels ou les personnaliser en fonction de vos besoins. Vous pouvez également suggérer des révisions ou des ajouts à un modèle public en soumettant une pull request sur le référentiel GitHub des modèles publics.
Vous pouvez également stocker des modèles d’environnement dans d’autres référentiels Git publics ou privés, et ajouter ces dépôts à votre laboratoire pour rendre les modèles disponibles pour tous les utilisateurs du labo. Pour obtenir des instructions, consultez Stocker des modèles ARM dans des référentiels Git et ajouter des référentiels de modèles aux laboratoires.
Configurer les paramètres d’environnement public
Vous pouvez activer l’accès au laboratoire au référentiel de modèles public DevTest Labs pour un laboratoire nouveau ou existant. Lorsque vous activez l’accès au référentiel, vous pouvez sélectionner les modèles d’environnement à mettre à la disposition des utilisateurs du labo.
Configurer l’accès à l’environnement public pour un nouveau labo
Pour configurer l’accès au référentiel d’environnement public lorsque vous créez un laboratoire, sous l’onglet Paramètres de base , définissez l’option Environnements publicssur Activé ou Désactivé. Cette option est définie sur Activé par défaut.
Configurer l’accès à l’environnement public pour un laboratoire existant
Pour activer ou désactiver l’accès au référentiel d’environnement public pour un labo existant :
Dans la page Vue d’ensemble du portail Azure pour votre laboratoire, sélectionnez Configuration et stratégies sous Paramètres dans le menu de navigation de gauche.
Dans la page Configuration et stratégies , développez les bases de machines virtuelles dans le menu de gauche et sélectionnez Environnements publics.
Dans la page Environnements publics , définissez l’option Activer les environnements publics pour cette option lab sur Oui ou Non.
Cliquez sur Enregistrer.
Sélectionner les modèles d’environnements publics disponibles
Lorsque vous activez le référentiel d’environnement public pour un laboratoire, tous les modèles d’environnement du référentiel sont disponibles par défaut pour vos utilisateurs de laboratoire. Vous pouvez choisir de désactiver l’accès aux modèles sélectionnés. Les modèles désactivés n’apparaissent plus dans la liste des environnements que les utilisateurs peuvent créer.
Pour interdire l’accès à des modèles d’environnement spécifiques :
Dans la page Configuration et stratégies>bases de machines virtuelles>environnements publics du portail Azure de votre labo, désélectionnez les cases à cocher situées à côté des environnements que vous souhaitez désactiver.
Cliquez sur Enregistrer.
Configurer les autorisations utilisateur de l’environnement
Par défaut, les utilisateurs du labo sont affectés au rôle Lecteur dans les environnements qu’ils créent. Les lecteurs ne peuvent pas arrêter, démarrer ou modifier des ressources d’environnement telles que des serveurs SQL ou des bases de données. Pour permettre aux utilisateurs du labo de modifier des ressources dans leurs environnements, vous pouvez leur accorder le rôle Contributeur dans le groupe de ressources de leur environnement.
Dans la page Vue d’ensemble du portail Azure pour votre laboratoire, sélectionnez Configuration et stratégies sous Paramètres dans le menu de navigation de gauche.
Dans la page Configuration et stratégies , développez Paramètres dans le menu de gauche, puis sélectionnez Paramètres du laboratoire.
Dans la page Paramètres du laboratoire sous Accès à l’environnement, définissez droits utilisateur du groupe de ressources à Contributeur.
Cliquez sur Enregistrer.
Créer des environnements à partir de modèles
Si votre laboratoire est configuré pour utiliser des référentiels de modèles publics ou privés, vous pouvez créer un environnement en sélectionnant un modèle ARM disponible, similaire à la création d’une machine virtuelle. Suivez ces étapes pour créer un environnement à partir d’un modèle.
Dans la page Vue d’ensemble du portail Azure pour votre laboratoire, sélectionnez Mes environnements sous Mon laboratoire dans le menu de navigation de gauche.
Dans la page Mes environnements , sélectionnez Ajouter.
Dans la page Choisir une base , sélectionnez l’environnement à créer.
Dans le volet Ajouter , entrez un nom d’environnement et configurez les autres paramètres.
- Chaque modèle d’environnement ARM inclut des paramètres uniques. Lorsque vous ajoutez un environnement, vous devez entrer des valeurs pour tous les paramètres requis, indiqués par des astérisques rouges.
- Certaines valeurs de paramètre dans un fichier de modèle ARM azuredeploy.parameters.json produisent des champs de paramètre vides sans valeur par défaut dans le volet Ajouter . Ces valeurs incluent
GEN-UNIQUE, ,GEN-UNIQUE-[N]GEN-SSH-PUB-KEYetGEN-PASSWORD. - Vous pouvez utiliser des secrets à partir d’Azure Key Vault pour sécuriser les paramètres de chaîne comme les mots de passe. Pour plus d’informations, consultez Stocker les secrets dans Azure Key Vault.
Sélectionnez Ajouter. L’environnement démarre immédiatement le provisionnement.
Le processus d’approvisionnement d’un environnement peut prendre beaucoup de temps. La durée totale dépend du nombre d’instances de service, de machines virtuelles et d’autres ressources que DevTest Labs crée dans le cadre de l’environnement de labo.
Vous pouvez surveiller l’état d’approvisionnement dans la page Mes environnements . Sélectionnez Actualiser dans la barre d’outils pour mettre à jour l’affichage de page et vérifier l’état actuel. Pendant l’approvisionnement, l’état de l’environnement est Création. Une fois l’approvisionnement terminé, l’état passe à Prêt.
Lorsque l’environnement est prêt, vous pouvez développer l’environnement dans la liste Mes environnements pour afficher les machines virtuelles configurées par le modèle.
Le déploiement crée un groupe de ressources pour approvisionner toutes les ressources d’environnement définies par le modèle ARM. Sélectionnez l’environnement dans la liste Mes environnements pour afficher le groupe de ressources et toutes les ressources créées par le modèle.
Sélectionnez une machine virtuelle dans la liste pour afficher les propriétés de machine virtuelle et les actions disponibles, telles que la gestion de la configuration, des planifications et des stratégies.
Automatiser la création d’environnements
Si vous devez créer plusieurs environnements pour les scénarios de développement ou de test, vous pouvez utiliser Azure PowerShell ou Azure CLI pour automatiser le déploiement d’environnement à partir de modèles ARM. Les étapes suivantes montrent comment automatiser le déploiement de modèles d’environnement ARM à l’aide de la commande Azure PowerShell New-AzResource .
Vous pouvez également automatiser le déploiement à l’aide de la commande azure CLI az deployment group create . Pour plus d’informations, veuillez consulter la section Déployer des ressources avec des modèles ARM et Azure CLI.
Stockez le modèle d’environnement ARM dans un référentiel Git et ajoutez le référentiel à votre laboratoire.
Enregistrez le script PowerShell suivant sur votre ordinateur en tant quedeployenv.ps1. Ce script appelle le modèle ARM pour créer l’environnement dans le labo.
#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."Pour utiliser le script, exécutez la commande suivante. Mettez à jour les espaces réservés dans la commande avec les valeurs de votre propre labo.
.\DeployLabEnvironment.ps1 ` -SubscriptionId "<Subscription ID>" ` -LabName "<LabName>" ` -ResourceGroupName "<LabResourceGroupName>" ` -RepositoryName "<TemplateRepoName>" ` -TemplateName "<TemplateFolderName>" ` -EnvironmentName "<EnvironmentName>"