PowerShell - Administrar Azure: Parte 1

Nos encontramos en un momento que necesitamos tener conocimiento sobre las nuevas tecnologías y por sobretodo, las tecnologías de nube. Microsoft esta apostando fuertemente a Azure, por lo que es una buena oportunidad escribir algo sobre este tema. Entonces, por que no comenzar con la parte de administración de la plataforma?

Primero debemos de tener una suscripción para hacer pruebas, desde el siguiente enlace vamos a acceder a una. Simplemente necesitamos una tarjeta de credito (pero no la vamos a usar).

Azure FREE Trial

Luego de tener una suscripción debemos tener las herramientas de administración de PowerShell, para ello nos descargamos el Azure SDK para PowerShell desde el siguiente enlace:

SDK para PowerShell

Ahora sí, con todas las herramientas necesarias, podemos empezar a trabajar.

Como vengo del palo de infraestructura, lo primero que voy a mostrar es como crear una máquina virtual. Existen varios tipos predefinidos; con cierta capacidad de CPU y memoria, que facilitan el proceso de creación. Estos tipos ya definidos se llaman sizes. Y también tenemos la “familia” de donde proviene la máquina; esto simplemente es una categoría del sistema operativo. Estos datos los vamos a ir definiendo mas adelante.

Luego de tener lo necesario, debemos empezar a configurar nuestros datos de suscripción para poder conectarnos desde powershell a Microsoft Azure.

Configurar conexión a la suscripción

Para comenzar debemos tener los datos para poder conectarnos desde PowerShell a la suscripción de Azure, para ello vamos a ejecutar lo siguiente:

Add-AzureAccount

Dando como resultado lo siguiente:

En ese cuadro que aparece debemos ingresar la dirección de mail que ingresaron cuando dieron de alta la suscripción, y posteriormente, la contraseña.

Luego de unos momentos, nos aparecerán los siguientes datos:

Para corroborar que estamos conectados a la suscripción correcta, ejecutamos:

Get-AzureSubsctiption

Crear una Máquina Virtual

Antes de comenzar tenemos que fijar los datos de la suscripción para que no nos genere error al ejecutar los comandos, para ello ejecutamos el siguiente bloque de código:

$Subscr = Get-AzureSubscription | select -ExpandProperty SubscriptionName
$StAccount = Get-AzureStorageAccount | select -ExpandProperty Label
Set-AzureSubscription -SubscriptionName $Subscr -CurrentStorageAccountName $StAccount

Debemos seleccionar la familia a la que pertenece la VM,por ejemplo si es Windows Server, Ubuntu, etc.

Podemos obtener una lista de todas las imagenes disponibles ejecutando el siguiente comando:

Get-AzureVMImage | select ImageFamily -Unique

Para este ejemplo vamos a seleccionar la Windows Server Technical Preview.

$Family = "Windows Server Technical Preview"
$Image = Get-AzureVMImage | where { $_.ImageFamily -eq $Family } | sort PublishedDate -Descending | select -ExpandProperty ImageName -First 1

Posteriormente tenemos que definir el tamaño de la VM, existen varias configuraciones definidas de tamaños, ésta es la lista de las configuraciones:

Para este ejemplo vamos a seleccionar la A1 que corresponde según la lista de Sizes a Small.

Por mas información, ingresar al siguiente enlace:

https://msdn.microsoft.com/library/azure/dn197896.aspx

Ya tenemos todo, es hora de unir las partes y ejecutar lo siguiente:

$vmName = "WindowsServerTP" #Nombre a elección para la VM
$vmSize = "Small"
$VM = New-AzureVMConfig -Name $vmName -InstanceSize $vmSize -ImageName $Image

También podemos agregar la credencial del usuario administrador de la máquina:

$vmCred = Get-Credential
$VM | Add-AzureProvisioningConfig -Windows -AdminUsername $vmCred.GetNetworkCredential().Username -Password $vmCred.GetNetworkCredential().Password

Creamos el Cloud Service que alojará la VM, indicando el nombre y la Location donde se encontrará:

New-AzureService -ServiceName "SvcServer" -Location "South Central US"

Y ahora sí, creamos la VM:

New-AzureVM -ServiceName "SvcServer" -VMs $VM

Si nos fijamos en el portal, luego de unos instantes vamos a tener la VM corriendo:

Happy scripting!

Comments