Powershell: creando vm windows server con IIS en ejecución.

Powershell

En ocasiones, como pruebas de balanceo de tráfico http, puede resultarnos muy útil automatizar la creación de nuestros recursos.

Con ese foco, os dejamos los comandos necesarios para generar una máquina virtual con servidor web instalado y corriendo con mensaje sencillo personalizado. Utilizaremos para ello la funcionalidad Set-AzVMExtension

Las especificaciones de la vm son las siguientes:

  • Nombre: vm-iis01
  • SKU: Standard D2s v3 (2 vcpus, 8 GiB memory)
  • Sistema Operativo Guest: Windows Server 2022 Datacenter Azure Edition
  • Servidor web IIS instalado y corriendo instancia sobre puerto tcp/80
  • Puertos abiertos contra la ip_publica: tcp/80, tcp/3389 (rdp)

Para su ejecución, incluiremoslos siguientes comandos en un archivo .ps1 y lo ejecutaremos desde la shell (tipo pwsh).

Nota: las credenciales del guest (user/pass) se solicitan por pantalla.

#creando nueva vm

$credenciales_guest= Get-Credential

New-AzVm -ResourceGroupName "backend-iis-rg" -Name "vm-iis01" -Location "west US" -VirtualNetworkName "vmiis01-vnet" -SubnetName "vmiis01-snet" -SecurityGroupName "vmiis01-nsg" -PublicIpAddressName "vmiis01-pip" -OpenPorts 80,3389 -Credential $credenciales_guest

#instalando IIS. Muestra el nombre de host por defecto.

Set-AzVMExtension -ResourceGroupName "backend-iis-rg" -ExtensionName "IIS" -VMName "vm-iis01" -Location "westUS" -Publisher Microsoft.Compute -ExtensionType CustomScriptExtension -TypeHandlerVersion 1.8 -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'

#salida del deploy. IP pública de la vm para probar el acceso al webserber

Get-AzPublicIPAddress -ResourceGroupName "backend-iis-rg" -Name "vmiis01-pip" | select IpAddress

Al conectarnos a la IP publica configurada en la creación y proporcionada por la salida del script, accederemos al servidor web corriendo en el puerto tcp/80 y mostrará como página por defecto su $hostname. Muy útil si generamos varias máquinas con este método y las balancear probando el failover o la recuperación de nuestro website. Veremos como el $hostname va cambiando.


Al terminar, recordar, limpiar nuestro tenant. (Orden, ahorro de costos… 😉

Os animamos a compartir con nosotros vuestras opiniones en X@mundoazure

Deja una respuesta

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