Subir un vhd de datos a través de Windows Azure PowerShell y asociarlo a una VM

Una tarea común cuando trabajamos con máquinas virtuales es subir un conjunto de archivos o ejecutables para tenerlos disponibles desde el cloud.
Como sabéis, desde la administración de nuestro equipo, en Disk Management podemos crear discos VHD, montarlos en nuestro local, añadir los elementos necesarios y desmontarlo de nuevo con el objetivo de que pueda ser trasladado a otra máquina.

En este post voy a mostrar cómo es posible subir un vhd utilizando Windows Azure PowerShell y cómo podríamos montarlo en una máquina virtual existente.
Si todavía no tienes instalado Windows Azure Powershell puedes hacerlo desde la página de descargas de Windows Azure (Command-line tools – Windows PowerShell).

Si es la primera vez que utilizamos la consola con una suscripción, el primer paso es recuperar el archivo con la configuración de la misma:

Get-AzurePublishSettingsFile

Este comando abrirá una ventana de nuestro navegador y descargará el archivo. Una vez lo hemos recuperado, importamos el mismo a través del siguiente comando:

Import-AzurePublishSettingsFile 'C:vmsMy-subscription.publishsettings'

A partir de este momento tenemos acceso a todos los servicios creados en esta suscripción. Con la conexión establecida a través de Powershell, y nuestro vhd listo, debemos lanzar el siguiente comando para que inicie la subida a la plataforma:

Add-AzureVhd -Destination http://gisvhds.blob.core.windows.net/vhds/gis.vhd -LocalFilePath C:vmsgis.vhd

Una vez finalizado, el mensaje por consola debería ser parecido al siguiente:

vhd uploaded Windows Azure Powershell

Para asociar este vhd a una máquina virtual, primero debemos registrarlo como disco:

Add-AzureDisk -DiskName "mydata" -MediaLocation "http://gisvhds.blob.core.windows.net/vhds/gis.vhd" -Label "gisvhd"

A partir de este momento, aparecerá en el apartado Disks de Virtual Machines:

Virtual Marchines Disks

Por último, vinculamos el mismo a la máquina que queramos a través de Add-AzureDataDisk:

 Get-AzureVM "myiisservice" -Name "VM1" ` | Add-AzureDataDisk -Import -DiskName "mydata" -LUN 0 ` | Update-AzureVM

Podemos comprobar en el portal que el disco queda asociado a la máquina seleccionada:

mydata attached to VM1

Dependiendo del tamaño de nuestra máquina podremos agregar un número determinado de discos. Esta información se puede consultar en Virtual Machine and Cloud Service Sizes for Windows Azure.

Espero que sea de utilidad.

¡Saludos!