Crear artefactos personalizados para Azure DevTest Labs

Días atrás tuve la oportunidad de dar una presentación en el Azure Global Bootcamp CR 2016 acerca de Azure DevTest Labs y mientras generaba el contenido para mi sesión fueron surgiendo temas que definitivamente requeriría abordar en detalles, uno de ellos es todo lo referente a repositorios y artefactos personalizados. Si bien se puede agregar repositorios personlizados distinto al público por defecto, también puedo crear artefactos personalizados para usarlos en esos repositorios y dentro de mis laboratorios.

Para realizar esto requerimos de lo siguiente:

  1. Un repositorio GIT donde estarán nuestros artefactos personalizados
  2. Archivos asociados al artefacto personalizado

Repositorio GIT personalizado

Azure DevTest Labs acepta repositorios GIT de los cuales tomará los artefactos permitidos para las máquinas virtuales. Este repositorio debe estar en una ruta que Azure pueda alcanzar para conectarse. Como para poder configurar mi repositorio en Azure DevTest Lab requiero de un token, mi repositorio puede ser público o privado en Github, VSTS o el servicio que use, el token será el que permitirá que Azure pueda tomar el contenido de este repositorio. Dentro de nuestro repositorio debe existir la siguiente estructura:

  • Carpeta de nombre Artifacts, donde se guardarán los distintos objetos que vayamos a crear
  • Sub carpetas con el nombre del artefacto a crear

Artefacto personalizado

Un artefacto personalizado debe cumplir con la siguiente estructura:

Archivo Artifactfile.json, el cual contiene las especificaciones del artefacto a crear. Este archivo debe encontrarse en la ruta /Artifacts/{Nombre del artefacto}/Artifactfile.json . El siguiente ejemplo muestra la estructura de este archivo con valores de ejemplo:

{
    "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2015-01-01/dtlArtifacts.json",
    "title": "Setup de Powershell-Azure-Extensiones",
    "description": "Este artefacto instala los modulos de powershell para Azure y Extensiones",
    "iconUri": "",
    "targetOsType": "Windows",
    "parameters": {
       "": {
       "type": "",
       "displayName": "versionazure",
       "description": "Version minima a instalar de Powershell Azure"
    }
},
    "runCommand": {
        "commandToExecute": "[concat('powershell.exe -File InstallAzureComponents.ps1'
        , ' -versionazure', parameters('versionazure')]"
    }
}

Esta definición indica que el artefacto ejecutará powershell cargando el script que se indica. El contenido de este script de powershell InstallAzureComponents.ps1 quedaría de la siguiente forma:

Param(
  [string]$versionAzure
)

Install-Module -Name Azure -MinimumVersion $versionAzure -Force -verbose
Install-Module -Name AzureRM -Force -verbose
Install-Module -Name AzureExt -Force -verbose

Este archivo debe ir en el mismo directorio junto con cualquier otro archivo/script requerido por el artefacto.
Una vez tenemos nuestro artefacto listo y publicado en el repositorio GIT, solo queda agregarlo a la máquina virtual de nuestro laboratorio.
Para ver detalles del procedimiento de creación de un artefacto personalizado puedes consultar AQUI. Adicionalmente, puede conseguir detalles de cómo agregar el repositorio al lab AQUI.

Nos leemos!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s