Ejercicio: Creación y guardado de scripts en Azure PowerShell

Completado

En esta unidad, continuará con el ejemplo de una empresa que crea herramientas administrativas con Linux. Recuerde que tiene previsto usar máquinas virtuales Linux para permitir que los clientes potenciales prueben el software. Tiene un grupo de recursos listo y ahora es el momento de crear las máquinas virtuales.

La empresa ha pagado por un stand en una gran feria de Linux. Planea habilitar un área de demostración que contiene tres terminales, cada una de ellas conectada a una máquina virtual Linux independiente. Al final de cada día, desea eliminar las máquinas virtuales y volver a crearlas, para empezar de cero cada mañana. Crear las máquinas virtuales manualmente después de trabajar cuando está cansado sería una tarea propensa a errores. Quiere escribir un script de PowerShell para automatizar el proceso de creación de máquinas virtuales.

Escritura de un script para crear máquinas virtuales

Siga estos pasos en Cloud Shell a la derecha para escribir el script:

  1. Cambie a la carpeta principal en Cloud Shell.

    cd $HOME\clouddrive
    
  2. Cree un archivo de texto denominado ConferenceDailyReset.ps1.

    touch "./ConferenceDailyReset.ps1"
    
  3. Abra el editor integrado y seleccione el archivo ConferenceDailyReset.ps1.

    code "./ConferenceDailyReset.ps1"
    

    Sugerencia

    Cloud Shell integrado también admite emacs, vim y nano si prefiere usar uno de esos editores.

  4. Empiece por capturar el parámetro de entrada en una variable. Agregue la siguiente línea al script.

    param([string]$resourceGroup)
    

    Nota:

    Normalmente, tendría que autenticarse en Azure con las credenciales mediante Connect-AzAccount y esto se puede hacer en el script. Pero en el entorno de Cloud Shell ya está autenticado, por lo que esto no es necesario.

  5. Pida un nombre de usuario y una contraseña para la cuenta de administrador de la máquina virtual y capture el resultado en una variable:

    $adminCredential = Get-Credential -Message "Enter a username and password for the VM administrator."
    
  6. Cree un bucle que se ejecute tres veces:

    For ($i = 1; $i -le 3; $i++) 
    {
    
    }
    
  7. En el cuerpo del bucle, cree un nombre para cada máquina virtual, almacénelo en una variable y envíelo a la consola:

    $vmName = "ConferenceDemo" + $i
    Write-Host "Creating VM: " $vmName
    
  8. Luego cree una máquina virtual con la variable $vmName:

    New-AzVm -ResourceGroupName $resourceGroup -Name $vmName -Credential $adminCredential -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest
    
  9. Guarde el archivo. Puede usar el menú "..." de la esquina superior derecha del editor. También hay métodos abreviados de teclado comunes para Guardar, como Ctrl + S.

El script completado debería ser similar al código siguiente:

param([string]$resourceGroup)

$adminCredential = Get-Credential -Message "Enter a username and password for the VM administrator."

For ($i = 1; $i -le 3; $i++)
{
    $vmName = "ConferenceDemo" + $i
    Write-Host "Creating VM: " $vmName
    New-AzVm -ResourceGroupName $resourceGroup -Name $vmName -Credential $adminCredential -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest
}

Ejecución del script

  1. Guarde el archivo y cierre el editor mediante el menú contextual "..." de la parte superior derecha del editor (o use Ctrl + Q).

  2. Ejecute el script.

    ./ConferenceDailyReset.ps1 <rgn>[sandbox resource group name]</rgn>
    

    El script puede tardar varios minutos en completarse. Cuando haya finalizado, examine los recursos que ahora hay en el grupo de recursos para comprobar que se ha ejecutado correctamente:

    Get-AzResource -ResourceType Microsoft.Compute/virtualMachines
    

Debería tener tres máquinas virtuales, cada una con un nombre único.

Ha escrito un script que ha automatizado la creación de tres máquinas virtuales en el grupo de recursos indicado por un parámetro de script. El script es corto y sencillo pero automatiza un proceso que tardaría mucho tiempo en completar manualmente en Azure Portal.