Hola, en este artículo veremos cómo crear una máquina virtual de manera sencilla a través de Cloud Shell, un entorno integrado de scripting donde podemos utilizar comandos con Powershell o utilizar Bash para el aprovisionamiento y operaciones sobre los diferentes recursos de MS Azure.
Prerrequisito:
- Una suscripción de Microsoft Azure.
Disclaimer: Dada la constante actualización de las tecnologías de Cloud Computing algunos pasos pueden ser diferentes al momento de leer el artículo, haré el esfuerzo por mantenerlo actualizado, pero podría haber algunas diferencias entre lo que se muestre a continuación y la consola de Azure al momento de la implementación.
Creación del grupo de recursos y la red virtual
Para comenzar vamos a crear la red virtual y la subred donde crearemos nuestra máquina virtual.
- Vamos hacia nuestra suscripción y en la parte superior damos click en el botón >_
- En la parte inferior se abrirá la consola de Cloud Shell, nos preguntará la suscripción con la queremos trabajar y para realizar las operaciones creará un storage account (si damos click en show advance settings nos permitirá seleccionar un resource group ya creado, darle un nombre al storage account y al fileshare que estará dentro del storage account), damos click en Create storage
- Por defecto se abre la interfaz de PowerShell, damos click en la lista desplegable donde aparece la palabra PowerShell, seleccionamos Bash y damos click en Confirm
- Vemos que la interfaz cambia a un fondo de color negro y es aquí donde comenzaremos la creación de nuestros recursos. Comenzaremos creando el grupo de recursos que llamaremos rgvvillar y la ubicación en East US. Para tener una lista de los nombres de las regiones en el formato de como deberíamos agregarlos en futuros parámetros podemos utilizar el siguiente comando: az account list-locations –query Name –query “[].name” -o table
- Vamos a crear la variable Location que utilizaremos después dentro de los parámetros para la creación de otros recursos y también digitamos el comando para la creación del resource group. LOCATION = eastus az group create -l $LOCATION -n rg-vvillar
- Vemos que el provisioningState se encuentre la palabra Succeeded, capturamos el nombre del resource group en la variable RG y después procedemos a crear la red virtual y la subnet indicando un rango de direcciones IP para cada uno, para ello digitamos: RG=rg-vvillar az network vnet create -g $RG -n vnet-vvillar –address-prefix 20.0.0.0/16 –subnet-name MySubnet –subnet-prefix 20.0.0.0/24
Creación de la máquina virtual
Como paso siguiente creamos la máquina virtual, para ello utilizaremos una imagen de Windows Server 2016
- Si deseamos ver la lista de máquinas virtuales con Windows publicadas por Microsoft podemos digitar el siguiente comando: az vm image list -f Windows -l eastus –query “[].urnAlias” -o table
- Procedemos a crear dos variables, una para el username, el password y después el comando para la creación de la máquina virtual de tamaño DS2_v2: USERNAME=vvillar PASSWORD=$(openssl rand -base64 12) VMNAME=vm-vvillar az vm create \ –name $VMNAME \ –resource-group $RG \ –image Win2016Datacenter \ –size Standard_DS2_v2 \ –location $LOCATION \ –admin-username $USERNAME \ –admin-password $PASSWORD \ –vnet-name vnet-vvillar –subnet MySubnet
- Verificamos que la máquina se encuentre satisfactoriamente creada con el comando: az vm get-instance-view \ –name $VMNAME \ –resource-group $RG \ –output table
Habilitación del rol de IIS
- Digitamos el siguiente comando que hace referencia a un script desde github y que tiene el comando para la habilitación del IIS y modifica el html de inicio: az vm extension set \ –resource-group $RG \ –vm-name $VMNAME \ –name CustomScriptExtension \ –publisher Microsoft.Compute \ –settings “{‘fileUris’:[‘https://raw.githubusercontent.com/MicrosoftDocs/mslearn-welcome-to-azure/master/configure-iis.ps1’]}” \ –protected-settings “{‘commandToExecute’: ‘powershell -ExecutionPolicy Unrestricted -File configure-iis.ps1’}”
- Abrimos el Puerto 80 de la máquina virtual para poder ingresar via http az vm open-port \ –name $VMNAME \ –resource-group $RG \ –port 80
- Para obtener la IP pública de la máquina virtual digitamos el siguiente comando: az vm show \ –name $VMNAME \ –resource-group $RG \ –show-details \ –query [publicIps] \ –output tsv
- Copiamos la IP pública y en un navegador la pegamos para ir a la página web de la máquina virtual