cloud-riders.ES Azure,Azure CLI,Azure Stack,Cloud,DataCenter Management,Powershell,SCVMM,VM,VMM ¿Cómo desplegar una VM en Azure con PowerShell?

¿Cómo desplegar una VM en Azure con PowerShell?¿Cómo desplegar una VM en Azure con PowerShell?

Acompáñanos en este artículo para aprender cómo desplegar una VM en Azure con PowerShell

Vamos a ver un ejemplo de script de PowerShell para desplecar una máquina virtual (VM) en Azure, la VM va a ser de Windows Server, y con un servidor IIS, para posteriormente añadir dos discos virtuales (VHDX) de 100GB cada uno.

Comenzamos por declarar las variables que se van a usar en el script:

# Variables

$resourceGroupName = «MiGrupoDeRecursos»

$location = «westeurope»

$vmName = «MiMaquinaVirtual»

$adminUsername = «azureuser»

$adminPassword = «TuContraseña123!»

Lo siguiente sería crear el grupo de recursos en el que se creará la VM:

# Crear grupo de recursos

New-AzResourceGroup -Name $resourceGroupName -Location $location

Después crear las credenciales de las VM:

# Configurar credenciales de la máquina virtual

$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ($adminUsername, (ConvertTo-SecureString -String $adminPassword -AsPlainText -Force))

Creamos el disco para la instalación del SO:

# Configurar disco para el sistema operativo

$osDiskName = $vmName + «-osDisk»

$osDiskUri = «https://$resourceGroupName.blob.core.windows.net/vhds/» + $osDiskName + «.vhd»

$osConfig = New-AzDiskConfig -SkuName «Standard_LRS» -OsType Windows -Location $location -CreateOption FromImage -SourceUri «https://yourimage.blob.core.windows.net/system/MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest»

A continuación creamos la VM:

# Crear máquina virtual

New-AzVM -ResourceGroupName $resourceGroupName -Name $vmName -Location $location -VirtualNetworkName «MiRedVirtual» -SubnetName «MiSubred» -SecurityGroupName «MiGrupoDeSeguridad» -PublicIpAddressName «MiIPPublica» -Credential $cred -OpenPorts 80,3389 -Image $osConfig -Size «Standard_DS2_v2» -DataDiskNames «disk1», «disk2» -DataDiskSizesGB 100

# Configurar servidor IIS

Invoke-AzVMRunCommand -ResourceGroupName $resourceGroupName -VMName $vmName -CommandId ‘RunPowerShellScript’ -ScriptPath ‘./Install-IIS.ps1’ -Parameter @{«Param1» = «Value1»}

Creamos los discos duros adicionales (2):

# Adjuntar discos virtuales adicionales

$diskConfig = New-AzDiskConfig -SkuName «Standard_LRS» -Location $location -CreateOption Empty -DiskSizeGB 100

$disk1 = New-AzDisk -ResourceGroupName $resourceGroupName -DiskName «disk1» -Disk $diskConfig

$disk2 = New-AzDisk -ResourceGroupName $resourceGroupName -DiskName «disk2» -Disk $diskConfig

Add-AzVMDataDisk -VMName $vmName -ResourceGroupName $resourceGroupName -Name «disk1» -CreateOption Attach -ManagedDiskId $disk1.Id -Lun 1

Add-AzVMDataDisk -VMName $vmName -ResourceGroupName $resourceGroupName -Name «disk2» -CreateOption Attach -ManagedDiskId $disk2.Id -Lun 2

Quedando finalmente de la siguiente manera:

# Variables

$resourceGroupName = «MiGrupoDeRecursos»

$location = «westeurope»

$vmName = «MiMaquinaVirtual»

$adminUsername = «azureuser»

$adminPassword = «TuContraseña123!»

# Crear grupo de recursos

New-AzResourceGroup -Name $resourceGroupName -Location $location

# Configurar credenciales de la máquina virtual

$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ($adminUsername, (ConvertTo-SecureString -String $adminPassword -AsPlainText -Force))

# Configurar disco para el sistema operativo

$osDiskName = $vmName + «-osDisk»

$osDiskUri = «https://$resourceGroupName.blob.core.windows.net/vhds/» + $osDiskName + «.vhd»

$osConfig = New-AzDiskConfig -SkuName «Standard_LRS» -OsType Windows -Location $location -CreateOption FromImage -SourceUri «https://yourimage.blob.core.windows.net/system/MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest»

# Crear máquina virtual

New-AzVM -ResourceGroupName $resourceGroupName -Name $vmName -Location $location -VirtualNetworkName «MiRedVirtual» -SubnetName «MiSubred» -SecurityGroupName «MiGrupoDeSeguridad» -PublicIpAddressName «MiIPPublica» -Credential $cred -OpenPorts 80,3389 -Image $osConfig -Size «Standard_DS2_v2» -DataDiskNames «disk1», «disk2» -DataDiskSizesGB 100

# Configurar servidor IIS

Invoke-AzVMRunCommand -ResourceGroupName $resourceGroupName -VMName $vmName -CommandId ‘RunPowerShellScript’ -ScriptPath ‘./Install-IIS.ps1’ -Parameter @{«Param1» = «Value1»}

# Adjuntar discos virtuales adicionales

$diskConfig = New-AzDiskConfig -SkuName «Standard_LRS» -Location $location -CreateOption Empty -DiskSizeGB 100

$disk1 = New-AzDisk -ResourceGroupName $resourceGroupName -DiskName «disk1» -Disk $diskConfig

$disk2 = New-AzDisk -ResourceGroupName $resourceGroupName -DiskName «disk2» -Disk $diskConfig

Add-AzVMDataDisk -VMName $vmName -ResourceGroupName $resourceGroupName -Name «disk1» -CreateOption Attach -ManagedDiskId $disk1.Id -Lun 1

Add-AzVMDataDisk -VMName $vmName -ResourceGroupName $resourceGroupName -Name «disk2» -CreateOption Attach -ManagedDiskId $disk2.Id -Lun 2

Este script crea una máquina virtual en Azure con Windows Server instalado, configura un servidor IIS en la máquina virtual y añade dos discos virtuales de 100GB cada uno.

En caso de que quieras usar este script para probarlo debes reemplazar los valores de las variables con los adecuados para tu entorno, como el nombre del grupo de recursos, el nombre de la máquina virtual, el nombre de usuario y contraseña, etc.

Para poder ejecutarlo, o bien lo lanzas desde PowerShell ISE o se debe guardar en un archivo de script llamado <loquesea>.ps1 donde <loquesea> es un nombre que le queramos dar.

Espero que os resulte útil.

Un abrazo!

Deja una respuesta

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

Related Post