Crea tus propios artefactos para Azure DevTest Labs

En el post anterior te hablé sobre el nuevo servicio Azure DevTest Labs (todavía en preview), que te permite crear entornos de desarrollo y pruebas para tu equipo. Una de las opciones dentro del laboratorio es la posibilidad de habilitar tus propios artefactos (aplicaciones y tareas) para que estén disponibles para las máquinas que se creen los usuarios. Hoy te voy a hablar sobre cómo crear este repositorio en GitHub y cómo puedes usarlo desde el servicio.

Crea un repositorio en GitHub

Lo primero que necesitas para exponer tus artefactos a través de Azure DevTest Labs es un repositorio git. Este puede estar en GitHub o también en Visual Studio Team Services. Esta guía puede serte muy útil si no conoces cómo trabajar con Git, aunque voy a explicarte paso a paso cómo generar lo que necesitas para este escenario.

Para comunicarte con GitHub necesitas instalar un cliente para tu sistema operativo. En mi caso estoy utilizando GitHub Desktop. Con él puedes crear un nuevo respositorio a través del apartado Create.

Create GitHub repository - Azure DevTest Labs
Create GitHub repository – Azure DevTest Labs

Aparecerá un nuevo elemento, representando el repositorio que acabas de crear, y que podrás seleccionar para abrir el terminal de git o el explorador de Windows para comenzar a crear la estructura. Abre el explorador y crea una carpeta llamada artifacts.

GitHub Desktop - Repository - Open in Explorer
GitHub Desktop – Repository – Open in Explorer

Dentro de esa carpeta lo que vamos a hacer es crear un segundo nivel de directorios por cada artefacto que quieras exponer. Por ejemplo, voy a crear un artefacto que me permita instalar Skype. Crea una carpeta llamada windows-skype dentro de artifacts.

Create a new artifact windows-skype
Create a new artifact windows-skype

Vamos a seguir el ejemplo del equipo de producto y, para instalar las herramientas, vamos a utilizar Chocolatey para gestionar las instalaciones. Para ello, necesitaremos dos scripts, que he recuperado del repositorio Azure/azure-devtestlabstartChocolatey.ps1 y ChocolateyPackageInstaller.ps1 . El primero de ellos recibe como argumento los paquetes a instalar, creará un usuario que realice la llamada como administrador y lanzará el segundo que será el que reciba el nombre de los paquetes. Instalará chocolatey y solicitará los paquetes recibidos como parámetro. Guarda estos dos archivos dentro de la carpeta windows-skype. Por último, necesitas un archivo llamado Artifactfile.json, que debe tener la siguiente estructura en JSON:

{
  "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2015-01-01/dtlArtifacts.json",
  "title": "Skype",
  "description": "Installs Skype using the Chocolatey package manager.",
  "tags": [
    "Windows",
    "Skype"
    
  ],
  "iconUri": "https://chocolatey.org/content/packageimages/skype.7.15.0.102.png",
  "targetOsType": "Windows",
  "runCommand": {
    "commandToExecute": "powershell.exe -executionpolicy bypass -File startChocolatey.ps1 -PackageList skype"

  }
}
  • $schema: establece el esquema del archivo.
  • title: el nombre del artefacto que quieres que aparezca en el listado.
  • description: descripción del artefacto.
  • tags: tags que permitan identificar al artefacto.
  • iconUri: icono que se mostrará en el listado de elementos.
  • targetOsType: ya que es posible instalar tanto máquinas Linux como Windows, es necesario indicar para qué tipo de máquinas está pensado este artefacto.
  • runCommand -> commandToExecute: este será el comando que se lanzará cuando se seleccione este artefacto en el listado. Como ves, hace una llamada al script startChocolatey.ps1 pasándole el listado de paquetes que quieres instalar.

Para finalizar, tienes que subir los cambios de tu repositorio. Para ello basta con ir a GitHub desktop, selecciona la pestaña Changes y haz un commit con los cambios.

Azure DevTest Labs - Commit artifact
Azure DevTest Labs – Commit artifact

Una vez hecho el commit, haz clic en Publish para que el repositorio esté disponible en GitHub.

GitHub Desktop - Publish
GitHub Desktop – Publish

Si accedes a tu perfil de GitHub (https://github.com/NOMBRE_DE_USUARIO) podrás ver que tu nuevo repositorio ya está listo.

Github profile - Popular repositories
Github profile – Popular repositories

Asociar tu repositorio a Azure DevTest Labs

Ya tienes tu propio repositorio en GitHub donde puedes poner a disposición de los desarrolladores y testers los artefactos que pueden utilizar durante la creación de su máquina virtual. El último paso es enlazarlo con tu cuenta de Azure DevTest Labs para que aparezcan como una opción en el listado de artefactos.

Si aún no has creado un entorno de DevTest Labs, puedes seguir los pasos del post anterior. Cuando se crea podrás ver que existe un apartado llamado Artifact Repository. Haz clic sobre él para configurar el tuyo.

Azure DevTest Labs - Artifact Repository
Azure DevTest Labs – Artifact Repository
  • Name: nombre identificativo del repositorio de artefactos.
  • Git Clone Uri: se trata de la URL que se utiliza para clonar un repositorio de Git, la puedes encontrar en la página de tu repositorio.
  • Folder Path: la carpeta raíz donde se encuentran todos los artefactos. En este ejemplo la he llamado artifacts.
  • Branch: el branch de git donde se están haciendo los cambios para generar este repositorio. Para simplificar el proceso, en este post se ha utilizado directamente el branch master.
  • Personal Access Token: Para poder acceder a un repositorio de github necesitas un token. Puedes generar uno desde https://github.com/settings/tokens, haciendo clic en Generate token y dejando los scope por defecto para este escenario. Copia el token generado y pégalo en esta sección.

Crea una máquina virtual con tu artefacto

Para comprobar que tus artefactos funcionan correctamente puedes crear una máquina virtual a la que asocies tu nuevo artefacto. Selecciona Add Lab VM y haz clic en la sección Artifacts, donde verás que además de los elementos oficiales tendrás uno nuevo que proviene de tu repositorio.

Lab VM - Artifacts - Skype - My own artifacts
Lab VM – Artifacts – Skype – My own artifacts

Si durante la creación ves que tus artefactos no se han instalado correctamente o ha ocurrido algún error durante el proceso, existe un log al que puedes recurrir para conocer el resultado final de la instalación. Selecciona la máquina virtual en cuestión y accede a Settings > ExtensionscustomScriptArtifact.

Azure DevTest Labs - extensions - customScriptArtifact
Azure DevTest Labs – extensions – customScriptArtifact

¡Saludos!