Compartir a través de


Integración de DevTest Labs en Azure Pipelines

Puede usar la extensión Azure DevTest Labs Tasks para integrar Azure DevTest Labs en las canalizaciones de integración y entrega continuas de Azure Pipelines (CI/CD). La extensión instala varias tareas en Azure Pipelines, entre las que se incluyen:

  • Creación de una máquina virtual (VM)
  • Crear una imagen personalizada a partir de una máquina virtual
  • Eliminación de una máquina virtual

Estas tareas facilitan, por ejemplo, implementar rápidamente una máquina virtual de imagen dorada , ejecutar una prueba específica y, a continuación, eliminar la máquina virtual.

En este artículo se muestra cómo usar Azure DevTest Labs Tasks para crear e implementar una máquina virtual, crear una imagen personalizada y, a continuación, eliminar la máquina virtual, todo ello en una única canalización de versión. Normalmente, realizaría estas tareas por separado en sus propias canalizaciones de compilación, prueba e implementación.

Introducción a Azure DevTest Labs

¿Nuevo en Azure? Cree una cuenta gratuita de Azure.

¿Ya está familiarizado con Azure? Cree el primer laboratorio y empiece a trabajar con Azure DevTest Labs en cuestión de minutos.

Requisitos previos

  • En Azure Portal, cree un laboratorio de DevTest Labs o utilice uno existente.

  • Registre o inicie sesión en su organización de Azure DevOps Services y cree un proyecto o use un proyecto existente.

  • Instale la extensión Azure DevTest Labs Tasks desde Visual Studio Marketplace:

    1. Vaya a Tareas de Azure DevTest Labs.
    2. Seleccione Obtener gratis.
    3. Seleccione la organización de Azure DevOps Services en la lista desplegable y, a continuación, seleccione Instalar.

Creación de una plantilla para compilar una máquina virtual de laboratorio

En primer lugar, construya una plantilla de Azure Resource Manager (ARM) que cree una máquina virtual de laboratorio a petición.

  1. En el laboratorio de Azure Portal, seleccione Agregar en la barra de menús superior.
  2. En la pantalla Elegir una base , seleccione una imagen base de Windows para la máquina virtual.
  3. En la pantalla Crear recurso de laboratorio , en Artefactos, seleccione Agregar o quitar artefactos.
  4. En la pantalla Agregar artefactos , busque winrm y seleccione la flecha situada junto a Configurar WinRM.
  5. En el panel Agregar artefacto , escriba un nombre de dominio completo (FQDN) para la máquina virtual, como contosolab00000000000000.westus3.cloudapp.azure.com. Seleccione Aceptar y, a continuación, seleccione Aceptar de nuevo.
  6. Seleccione la pestaña Configuración avanzada y, en Dirección IP, seleccione Público.

    Nota

    Si usa el artefacto de WinRM con una dirección IP compartida, debe agregar una regla de traducción de direcciones de red (NAT) para asignar un puerto externo al puerto de WinRM. La regla NAT no es necesaria si crea la máquina virtual con una dirección IP pública. Para este tutorial, cree la máquina virtual con una dirección IP pública.

  7. Seleccione Ver plantilla de ARM.
  8. Copie el código de plantilla y guárdelo como un archivo denominado CreateVMTemplate.json en la rama de control de código fuente local.
  9. Inserte la plantilla en el sistema de control de código fuente del proyecto.

Creación de un script para obtener las propiedades de la máquina virtual

A continuación, cree un script para recopilar los valores que los pasos de tarea como Azure File Copy y PowerShell en las máquinas de destino usan para implementar aplicaciones en máquinas virtuales. Normalmente, usaría estas tareas para implementar sus propias aplicaciones en las máquinas virtuales de Azure. Las tareas requieren valores como el nombre del grupo de recursos de VM, la dirección IP y el nombre de dominio completo (FQDN).

Nota

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Para empezar, consulte Instalación de Azure PowerShell. Para obtener información sobre cómo migrar al módulo Az PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Guarde el siguiente script con un nombre como GetLabVMParams.ps1y compruébalo en el sistema de control de código fuente del proyecto.

Param( [string] $labVmId)

$labVmComputeId = (Get-AzResource -Id $labVmId).Properties.ComputeId

# Get lab VM resource group name
$labVmRgName = (Get-AzResource -Id $labVmComputeId).ResourceGroupName

# Get the lab VM Name
$labVmName = (Get-AzResource -Id $labVmId).Name

# Get lab VM public IP address
$labVMIpAddress = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).IpAddress

# Get lab VM FQDN
$labVMFqdn = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).DnsSettings.Fqdn

# Set a variable labVmRgName to store the lab VM resource group name
Write-Host "##vso[task.setvariable variable=labVmRgName;]$labVmRgName"

# Set a variable labVMIpAddress to store the lab VM Ip address
Write-Host "##vso[task.setvariable variable=labVMIpAddress;]$labVMIpAddress"

# Set a variable labVMFqdn to store the lab VM FQDN name
Write-Host "##vso[task.setvariable variable=labVMFqdn;]$labVMFqdn"

Crear una canalización de implementación en Azure Pipelines

A continuación, cree la canalización de lanzamiento en Azure Pipelines. Las tareas de canalización usan los valores que asignó a la máquina virtual cuando creó la plantilla de ARM.

  1. En la página del proyecto de Azure DevOps Services, seleccione Pipelines Releases> (Versiones de canalizaciones) en el panel de navegación izquierdo.
  2. Seleccione Nueva canalización.
  3. En el panel Seleccionar una plantilla , seleccione Trabajo vacío.
  4. Cierre el panel Escenario.
  5. En la página Nueva canalización de versión , seleccione la pestaña Variables .
  6. Seleccione Agregar y escriba los siguientes pares Nombre y Valor , seleccionando Agregar después de agregar cada uno.
    • vmName: el nombre de máquina virtual que asignó en la plantilla de ARM.
    • userName: nombre de usuario para acceder a la máquina virtual.
    • password: contraseña para el nombre de usuario. Seleccione el icono de candado para ocultar y proteger la contraseña.

Agregar un artefacto

  1. En la página de la nueva canalización de versión, en la pestaña Canalización, seleccione Agregar un artefacto.
  2. En el panel Agregar un artefacto, seleccione Azure Repo.
  3. En la lista Proyecto , seleccione el proyecto de DevOps.
  4. En la lista Origen (repositorio), seleccione el repositorio de origen.
  5. En la lista Rama predeterminada, seleccione la rama que se va a extraer.
  6. Seleccione Agregar.

Creación de una máquina virtual de DevTest Labs

El siguiente paso consiste en crear una máquina virtual de imagen dorada que se usará para futuras implementaciones. En este paso se usa la tarea Crear máquina virtual de Azure DevTest Labs .

  1. En la página de la nueva canalización de lanzamiento, en la pestaña Canalización, seleccione el texto hipervinculado en Fase 1.

  2. En el panel izquierdo, seleccione el signo + más situado junto al trabajo del Agente.

  3. En Agregar tareas en el panel derecho, busque y seleccione Crear máquina virtual de Azure DevTest Labs y seleccione Agregar.

  4. En el panel izquierdo, seleccione la tarea Crear máquina virtual de Azure DevTest Labs .

  5. En el panel de la derecha, rellene el formulario como se indica a continuación:

    • Suscripción de Azure RM: seleccione la conexión de servicio o la suscripción en la lista desplegable y seleccione Autorizar si es necesario.

      Nota

      Para más información sobre cómo crear una conexión de permisos más restringidos a la suscripción de Azure, consulte Punto de conexión de servicio de Azure Resource Manager.

    • Laboratorio: seleccione el nombre del laboratorio de DevTest Labs.

    • Nombre de máquina virtual: la variable que especificó para el nombre de la máquina virtual: $vmName.

    • Plantilla: navegue a y seleccione el archivo de plantilla que ha registrado en el repositorio del proyecto.

    • Archivo de parámetros: si ha comprobado un archivo de parámetros en el repositorio, vaya a él y selecciónelo.

    • Invalidaciones de parámetros: escriba -newVMName '$(vmName)' -userName '$(userName)' -password '$(password)'.

    • Despliegue Variables de salida y, en Nombre de referencia, escriba la variable para el identificador de máquina virtual del laboratorio creado. Vamos a escribir vm como Nombre de referencia para simplificar. labVmId será un atributo de esta variable y se hará referencia a más adelante como $vm.labVmId. Si usa algún otro nombre, recuerde usarlo en consecuencia en las tareas posteriores.

      El id. de la máquina virtual de laboratorio tendrá el siguiente formato: /subscriptions/{subscription Id}/resourceGroups/{resource group Name}/providers/Microsoft.DevTestLab/labs/{lab name}/virtualMachines/{vmName}.

Recopilación de los detalles de la máquina virtual de DevTest Labs

A continuación, la canalización ejecuta el script que creó para recopilar los detalles de la máquina virtual de DevTest Labs.

  1. En la pestaña Tareas de la canalización de implementación, seleccione el signo + más situado junto al Trabajo del Agente.
  2. En Agregar tareas en el panel derecho, busque y seleccione Azure PowerShell y seleccione Agregar.
  3. En el panel izquierdo, seleccione la tarea Script de Azure PowerShell: FilePath .
  4. En el panel de la derecha, rellene el formulario como se indica a continuación:
    • Suscripción de Azure: seleccione la conexión de servicio o la suscripción.
    • Tipo de script: seleccione Ruta de acceso del archivo de script.
    • Ruta del script: Vaya y seleccione el script de PowerShell que ha archivado en su repositorio de código fuente. Puede usar las propiedades integradas para simplificar la ruta de acceso, por ejemplo: $(System.DefaultWorkingDirectory/Scripts/GetLabVMParams.ps1.
    • Argumentos de script: escriba el valor como -labVmId $(vm.labVmId).

El script recopila los valores necesarios y los almacena en variables de entorno dentro del pipeline de lanzamiento, para poder consultarlos en pasos posteriores.

Creación de una imagen de máquina virtual desde la máquina virtual de DevTest Labs

En la siguiente tarea se crea una imagen de la máquina virtual recién implementada en el laboratorio. Puede usar la imagen para crear copias de la máquina virtual a petición a fin de realizar tareas de desarrollador o ejecutar pruebas.

  1. En la pestaña Tareas de canalización de versión, seleccione el signo + más situado junto al trabajo del Agente.
  2. En Agregar tareas, seleccione Azure DevTest Labs Create Custom Image (Crear imagen personalizada de Azure DevTest Labs) y seleccione Agregar.
  3. En el panel izquierdo, seleccione la tarea Crear imagen personalizada de Azure DevTest Labs .
  4. En el panel de la derecha, rellene el formulario como se indica a continuación:
    • Suscripción de Azure RM: seleccione la conexión de servicio o la suscripción.
    • Laboratorio: seleccione el laboratorio.
    • Nombre de imagen personalizada: escriba un nombre para la imagen personalizada.
    • Descripción: escriba una descripción opcional para facilitar la selección de la imagen correcta.
    • Máquina virtual del laboratorio de origen: labVmId. Escriba el valor como $(vm.labVmId).
    • Variables de salida: puede editar el nombre de la variable predeterminada de ID de imagen personalizada si es necesario.

Implementación de la aplicación en la máquina de DevTest Labs (opcional)

Puede agregar tareas para implementar la aplicación en la nueva máquina virtual de DevTest Labs. Si solo desea experimentar con la creación de una máquina virtual de DevTest Labs y una imagen personalizada, sin implementar una aplicación, puede omitir este paso.

Las tareas que normalmente se usan para implementar aplicaciones son Azure File Copy y PowerShell en las máquinas de destino. Puede encontrar la información de máquina virtual que necesita para los parámetros de tarea en tres variables de configuración denominadas labVmRgName, labVMIpAddress y labVMFqdn dentro de la canalización de versión.

Eliminación de la máquina virtual

La tarea final consiste en eliminar la máquina virtual que implementó en el laboratorio. Lo habitual es eliminar la máquina virtual después de realizar las tareas del desarrollador o de ejecutar las pruebas que necesita en la máquina virtual implementada.

  1. En la pestaña Tareas de canalización de versión, seleccione el signo + más situado junto al trabajo del Agente.
  2. En Agregar tareas, seleccione Azure DevTest Labs Delete VM (Eliminar máquina virtual) y seleccione Agregar.
  3. Configure la tarea de la siguiente manera:
    • Suscripción de Azure RM: seleccione la conexión de servicio o la suscripción.
    • Laboratorio: seleccione el laboratorio.
    • Máquina virtual: escriba el valor como $(vm.labVmId).
    • Variables de salida: en Nombre de referencia, si cambió el nombre predeterminado de la variable labVmId , escríbalo aquí. El valor predeterminado es $(labVmId).

Guardar el flujo de trabajo de lanzamiento

Para guardar el pipeline de lanzamiento nuevo:

  1. Seleccione Nueva canalización de despliegue en la parte superior de la página y escriba un nuevo nombre para la canalización.
  2. Seleccione Guardar en la esquina superior derecha.

Creación y ejecución de una versión

Para crear y ejecutar una versión con la nueva canalización:

  1. En la página de canalización de versión, seleccione Crear versión en la esquina superior derecha.
  2. En Artefactos, seleccione la compilación más reciente y, a continuación, seleccione Crear.

En cada fase del lanzamiento, puede actualizar la vista del laboratorio en Azure Portal para ver la creación y eliminación de máquinas virtuales, y la creación de imágenes.

Ahora puede usar la imagen personalizada para crear máquinas virtuales cuando sea necesario.

Pasos siguientes