Para instalar cualquier rol de Windows en una máquina virtual de Azure podemos utilizar extensiones de Azure.

¿Qué son las extensiones de Azure?

Las extensiones de Azure nos permite realizar tareas de automatización y configuración sin necesidad de entrar en la máquina virtual. Hay muchos tipos de extensiones en Azure. El más sencillo y el que nos centramos es el de tipo Script personalizado.

Con este tipo de extensión podemos ejecutar un script con uno o varios comandos de PowerShell como, en el ejemplo del video, instalar cualquier rol o scripts más complejos.

Esta operación es posible gracias a la comunicación de Azure con el agente incluido en la máquina virtual.

¿Cómo se ejecutan?

Las extensiones se pueden incluir en el despliegue de la máquina virtual incluyéndola en una plantilla o mediante el portal de Azure. Al terminar el despliegue se ejecutará la extensión.

También se puede crear después de crear la máquina virtual mediante comandos de PowerShell, CLI o mediante el portal de Azure. En este caso se ejecutará justo después de crear la extensión, con lo que será necesario que la máquina virtual esté en marcha.

Algunas consideraciones

La extensión de tipo Script personalizado sólo se ejecutan una vez y, para volver a ejecutarlo es necesario quitar la extensión y volverla a crear. No ocurre así en las de tipo Configuración de estado deseado, que se ejecutará cada cierto tiempo, según se configure al crear la extensión.

Si ocurre un error de sintaxis o cualquier otro error de ejecución, lo sabremos si entramos en la extensión y consultamos su estado.

Extensión similar al Script personalizado

Otra extensión que nos permite una configuración persistente, mediante PowerShell, es la Configuración de estado deseado. Para este tipo de extensión es necesario conocer la forma de escritura de los scripts en modo Push para DSC, ya que no se escriben tal y como los comandos se ejecutan.

Puedes tener más información sobre DSC en https://docs.microsoft.com/es-es/powershell/dsc/overview
Un ejemplo de script en formato DSC para nuestro ejemplo, sería el siguiente:

Configuration rolDNS
{
node localhost
{
WindowsFeature DNS
{
Ensure = “Present”
Name = “DNS”
}
}
rolDNS

Este script se encarga de asegurarse de que, aunque por algún motivo se desinstale, el rol DNS siempre esté instalado. Hay infinidad de posibilidades, aunque su escritura es algo distinta de los comandos propios de PowerShell.

Más información sobre las extensiones en Azure de Script Personalizado en https://docs.microsoft.com/es-es/azure/virtual-machines/windows/extensions-customscript

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.