Ejercicio: Creación de recursos de Azure con Azure PowerShell mediante un script
En esta unidad, continuará con el ejemplo de una empresa que desarrolla herramientas de administración de Linux. El objetivo es usar máquinas virtuales Linux (VM) para permitir que los clientes potenciales prueben el software. Con un grupo de recursos ya configurado, es el momento de crear las máquinas virtuales.
Su empresa ha protegido una cabina en una gran feria comercial de Linux. Tiene previsto configurar un área de demostración con tres terminales, cada uno conectado a una máquina virtual Linux independiente. Debe eliminar las máquinas virtuales y volver a crearlas al final de cada día para que empiecen de cero cada mañana. La creación manual de las máquinas virtuales después de un largo día es propensa a errores, por lo que debe escribir un script de PowerShell para automatizar el proceso de creación de la máquina virtual.
Escritura de un script para crear máquinas virtuales
Siga estos pasos para escribir un script en Azure Cloud Shell que automatiza la creación de máquinas virtuales.
Nota:
Normalmente, se autenticaría en Azure con sus credenciales con Connect-AzAccount
, pero en Cloud Shell ya está autenticado, por lo que este paso no es necesario.
Cambie a la carpeta principal:
Set-Location -Path $HOME
Cree un nuevo archivo de script de PowerShell:
New-Item -Name ConferenceDailyReset.ps1 -ItemType File
Abra el editor integrado de Visual Studio Code (VS Code):
code ./ConferenceDailyReset.ps1
Sugerencia
El editor integrado de Cloud Shell también admite vim, nano y emacs si prefiere usar uno de esos editores.
Defina un parámetro para el nombre del grupo de recursos:
Agregue la siguiente línea al script:
param ( [string]$ResourceGroupName )
Solicite credenciales de administrador de máquinas virtuales:
$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
Cree un bucle para ejecutarse tres veces:
$vms = 'web','app','sql' foreach ($vm in $vms) { $vm }
En el bucle, devuelva el nombre de cada máquina virtual:
Write-Output "Creating VM: $vm"
Cree una máquina virtual con la variable
$vm
:$azVmParams = @{ ResourceGroupName = $ResourceGroupName Name = $vm Credential = $adminCredential Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest' OpenPorts = 22 } New-AzVm @azVmParams
Guarde el archivo:
Para guardar el script, use el menú contextual de puntos suspensivos (
...
) en la esquina superior derecha del editor o el método abreviado de teclado Ctrl + S.
Script completado
El script completado debe tener un aspecto similar al del ejemplo siguiente:
param (
[string]$ResourceGroupName
)
$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
$vms = 'web','app','sql'
foreach ($vm in $vms) {
Write-Output "Creating VM: $vm"
$azVmParams = @{
ResourceGroupName = $ResourceGroupName
Name = $vm
Credential = $adminCredential
Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
OpenPorts = 22
}
New-AzVm @azVmParams
}
Una vez que confirme que el script tiene un aspecto similar al código del ejemplo anterior, cierre el editor con los puntos suspensivos (...
) del menú contextual de la esquina superior derecha del editor o el método abreviado de teclado Ctrl +
Q.
Ejecute el script.
Ejecute el script con el siguiente comando:
./ConferenceDailyReset.ps1 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Esperar a que finalicen. El script tarda varios minutos en completarse.
Compruebe las máquinas virtuales. Una vez finalizado el script, compruebe que se completó correctamente enumerando las máquinas virtuales del grupo de recursos:
Get-AzVM -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Debería ver tres máquinas virtuales, cada una con un nombre único.
Ha creado correctamente un script que automatiza la creación de tres máquinas virtuales, cada una de ellas en un grupo de recursos específico, asegurándose de que están listas para demostraciones diarias en la feria comercial. Aunque el script es corto y sencillo, acelera significativamente un proceso que, de lo contrario, sería lento y propenso a errores si se realiza manualmente a través de Azure Portal.