Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede usar entornos de Azure DevTest Labs para aprovisionar laboratorios de forma sencilla y coherente con varias máquinas virtuales (VM) y recursos de plataforma como servicio (PaaS). En este artículo se describe cómo crear entornos de DevTest Labs a partir de plantillas de Azure Resource Manager (ARM). Puede usar este enfoque para crear un laboratorio para una aplicación web de varios niveles o una granja de Servidores de SharePoint.
Los recursos de un entorno de DevTest Labs comparten el mismo ciclo de vida. Puede administrarlos juntos y realizar un seguimiento del costo de los recursos de PaaS individuales en el entorno de laboratorio, al igual que los costos de las máquinas virtuales individuales.
Puede configurar un laboratorio para usar plantillas de entorno de ARM desde repositorios de plantillas de Git públicas o privadas. En el diagrama siguiente se muestra cómo DevTest Labs usa una plantilla de ARM de un repositorio público o privado para implementar un entorno que contenga máquinas virtuales y otros recursos.
Nota:
Si necesita administrar los recursos, las directivas y la configuración de seguridad de PaaS de toda la empresa, o la integración de CI/CD en las fases de implementación y las aplicaciones, considere la posibilidad de usar entornos de implementación de Azure (ADE) para crear entornos. ADE permite a los desarrolladores implementar rápidamente la infraestructura de aplicaciones mediante plantillas basadas en proyectos, lo que garantiza entornos coherentes y seguros para los equipos de desarrollo. Para más información, consulte la documentación de Entornos de implementación de Azure.
Requisitos previos
- Para poder agregar o configurar repositorios de plantillas para un laboratorio, se requieren al menos permisos de Colaborador en el laboratorio.
- Para crear entornos de Azure DevTest a partir de plantillas de ARM disponibles, se requiere al menos el permiso de Usuario DevTest en el laboratorio.
- Para ejecutar el script de PowerShell en el entorno de automatización de la creación, Azure PowerShell debe tener el módulo
Az.Resourcesinstalado.
Limitaciones
Los entornos creados a partir de plantillas de entorno de ARM en DevTest Labs tienen las siguientes limitaciones:
No se admite la característica de apagado automático de las máquinas virtuales.
Las siguientes directivas de laboratorio no se aplican ni evalúan:
- Número de máquinas virtuales por usuario de laboratorio
- Número de máquinas virtuales premium por usuario
- Número de discos Premium por usuario
Por ejemplo, incluso si la directiva de laboratorio solo permite a cada usuario crear un máximo de cinco máquinas virtuales, el usuario puede implementar una plantilla de entorno de ARM que cree docenas de máquinas virtuales.
Configuración de repositorios de plantillas para laboratorios
Puede configurar el laboratorio para que use plantillas de entorno de ARM desde el repositorio de plantillas de ARM pública de DevTest Labs y desde otros repositorios git públicos o privados. Al habilitar el acceso de laboratorio a un repositorio de plantillas, los usuarios del laboratorio pueden crear rápidamente entornos seleccionando plantillas en Azure Portal, de forma similar a la creación de máquinas virtuales.
El repositorio de plantillas de ARM pública de DevTest Labs incluye plantillas de entorno autenticadas previamente para Azure Web Apps, un clúster de Azure Service Fabric y granjas de SharePoint de desarrollo. Para obtener una experiencia de introducción fluida con los recursos de PaaS, las plantillas tienen parámetros de entrada mínimos.
Puede usar las plantillas de entorno público tal como están o personalizarlas para que se adapten a sus necesidades. También puede sugerir revisiones o adiciones a una plantilla pública mediante el envío de una solicitud de incorporación de cambios en el repositorio de plantillas públicas de GitHub.
También puede almacenar plantillas de entorno en otros repositorios git públicos o privados y agregar esos repositorios al laboratorio para que las plantillas estén disponibles para todos los usuarios del laboratorio. Para obtener instrucciones, consulte Almacenar plantillas de ARM en repositorios de Git y Agregar repositorios de plantillas a labs.
Configuración del entorno público
Puede habilitar el acceso de laboratorio al repositorio de plantillas públicas de DevTest Labs para un laboratorio nuevo o existente. Al habilitar el acceso al repositorio, puede seleccionar qué plantillas de entorno están disponibles para los usuarios del laboratorio.
Configuración del acceso al entorno público para un nuevo laboratorio
Para configurar el acceso al repositorio de entorno público al crear un laboratorio, en la pestaña Configuración básica , establezca la opción Entornos públicos en Activado o Desactivado. Esta opción se establece en Activado de forma predeterminada.
Configuración del acceso al entorno público para un laboratorio existente
Para habilitar o deshabilitar el acceso al repositorio del entorno público para un laboratorio existente:
En la página Información general de Azure Portal del laboratorio, seleccione Configuración y directivas en Configuración en el menú de navegación izquierdo.
En la página Configuración y directivas , expanda Bases de máquinas virtuales en el menú izquierdo y seleccione Entornos públicos.
En la página Entornos públicos , establezca la opción Habilitar entornos públicos para este laboratorio enSí o No.
Seleccione Guardar.
Selección de plantillas de entorno público disponibles
Al habilitar el repositorio de entorno público para un laboratorio, todas las plantillas de entorno del repositorio están disponibles para los usuarios del laboratorio de forma predeterminada. Puede optar por deshabilitar el acceso a las plantillas seleccionadas. Las plantillas deshabilitadas ya no aparecen en la lista de entornos que los usuarios pueden crear.
Para no permitir el acceso a plantillas de entorno específicas:
En la página Configuración y directivas>Bases de máquinas virtuales>Entornos públicos del portal Azure de su laboratorio, anule la selección de las casillas situadas junto a los entornos que desea deshabilitar.
Seleccione Guardar.
Configuración de permisos de usuario de entorno
Por defecto, los usuarios de laboratorio se asignan al rol Lector en los entornos que crean. Los lectores no pueden detener, iniciar ni modificar recursos de entorno como servidores SQL Server o bases de datos. Para permitir que los usuarios del laboratorio editen recursos en sus entornos, puede concederles el rol Colaborador en el grupo de recursos para su entorno.
En la página Información general de Azure Portal del laboratorio, seleccione Configuración y directivas en Configuración en el menú de navegación izquierdo.
En la página Configuración y directivas , expanda Configuración en el menú de la izquierda y seleccione Configuración de laboratorio.
En la página Configuración del laboratorio , en Acceso al entorno, establezca la opción Derechos de usuario del grupo de recursos en Colaborador.
Seleccione Guardar.
Creación de entornos a partir de plantillas
Si el laboratorio está configurado para usar repositorios de plantillas públicos o privados, puede crear un entorno seleccionando una plantilla de ARM disponible, de forma similar a la creación de una máquina virtual (VM). Siga estos pasos para crear un entorno a partir de una plantilla.
En la página Información general de Azure Portal del laboratorio, seleccione Mis entornos en Mi laboratorio en el menú de navegación izquierdo.
En la página Mis entornos , seleccione Agregar.
En la página Elegir una base , seleccione el entorno que desea crear.
En el panel Agregar , escriba un nombre de entorno y configure los demás parámetros.
- Cada plantilla de entorno de ARM incluye parámetros únicos. Al agregar un entorno, debe especificar valores para todos los parámetros necesarios, indicados por asteriscos rojos.
- Algunos valores de parámetro de un archivo de plantilla de ARM deazuredeploy.parameters.json generan campos de configuración en blanco sin ningún valor predeterminado en el panel Agregar . Estos valores incluyen
GEN-UNIQUE,GEN-UNIQUE-[N],GEN-SSH-PUB-KEYyGEN-PASSWORD. - Puede usar secretos de Azure Key Vault para parámetros de cadena seguros , como contraseñas. Para más información, consulte Almacenamiento de secretos en Azure Key Vault.
Selecciona Agregar. El entorno inicia el aprovisionamiento inmediatamente.
El proceso para aprovisionar un entorno puede tardar mucho tiempo. El tiempo total depende del número de instancias de servicio, máquinas virtuales y otros recursos que DevTest Labs crea como parte del entorno de laboratorio.
Puede supervisar el estado de aprovisionamiento en la página Mis entornos . Seleccione Actualizar en la barra de herramientas para actualizar la vista de página y comprobar el estado actual. Mientras el aprovisionamiento está en curso, el estado del entorno es Crear. Una vez completado el aprovisionamiento, el estado cambia a Listo.
Cuando el entorno esté listo, puede expandir el entorno en la lista Mis entornos para ver las máquinas virtuales aprovisionadas.
La implementación crea un nuevo grupo de recursos para aprovisionar todos los recursos de entorno definidos por la plantilla de ARM. Seleccione el entorno en la lista Mis entornos para ver el grupo de recursos y todos los recursos que creó la plantilla.
Seleccione una máquina virtual (VM) en la lista para ver las propiedades de la máquina virtual y las acciones disponibles, como administrar la configuración, las programaciones y las directivas.
Automatizar la creación de entornos
Si necesita crear varios entornos para escenarios de desarrollo o pruebas, puede usar Azure PowerShell o la CLI de Azure para automatizar la implementación del entorno desde plantillas de ARM. En los pasos siguientes se muestra cómo automatizar la implementación de plantillas de entorno de ARM mediante el comando de Azure PowerShell New-AzResource .
También puede automatizar la implementación mediante el comando az deployment group create de la CLI de Azure. Para más información, consulte Implementación de recursos con plantillas de ARM y la CLI de Azure.
Almacene la plantilla de entorno de ARM en un repositorio de Git y agregue el repositorio al laboratorio.
Guarde el siguiente script de PowerShell en el equipo como deployenv.ps1. Este script llama a la plantilla de ARM para crear el entorno en el laboratorio.
#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."Para usar el script, ejecute el siguiente comando. Actualice los marcadores de posición en el comando con sus propios valores de laboratorio.
.\DeployLabEnvironment.ps1 ` -SubscriptionId "<Subscription ID>" ` -LabName "<LabName>" ` -ResourceGroupName "<LabResourceGroupName>" ` -RepositoryName "<TemplateRepoName>" ` -TemplateName "<TemplateFolderName>" ` -EnvironmentName "<EnvironmentName>"