Ejercicio: Creación de un recurso de Azure de forma interactiva con Azure PowerShell

Completado

En el escenario original, debe crear máquinas virtuales (VM) para probar el software de Administración de relaciones con el cliente (CRM). Cuando haya disponible una nueva compilación, querrá poner en marcha una nueva máquina virtual para probar toda la experiencia de instalación a partir de una imagen limpia. Una vez completada la prueba, puede eliminar la máquina virtual.

Vamos a probar los comandos para crear una máquina virtual.

Creación de una máquina virtual Linux con Azure PowerShell

Dado que usa el espacio aislado de Azure, no es necesario crear un grupo de recursos. En su lugar, use el grupo de recursos de espacio aislado existente [nombre del grupo de recursos de espacio aislado]. Tenga en cuenta las restricciones de ubicación.

A continuación se muestra cómo crear una máquina virtual de Azure con Azure PowerShell:

  1. Use el cmdlet New-AzVM para crear la máquina virtual.

    • Especifique el grupo de recursos del espacio aislado, [nombre del grupo de recursos del espacio aislado].

    • Asigne un nombre a la máquina virtual siguiendo los estándares de nomenclatura de la organización.

    • Elija una ubicación cercana a usted en la lista de ubicaciones de espacio aislado de Azure disponibles.

      • westus2
      • southcentralus
      • centralus
      • eastus
      • westeurope
      • southeastasia
      • japaneast
      • brazilsouth
      • australiasoutheast
      • centralindia
    • Use la imagen de Ubuntu Linux: Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest.

    • Use el cmdlet Get-Credential para establecer las credenciales de administrador de máquina virtual.

    • Agregue el parámetro OpenPorts con 22 de puerto para el acceso SSH.

    • Cree un nombre de dirección IP pública para el inicio de sesión SSH.

    $azVmParams = @{
        ResourceGroupName   = '<rgn>[sandbox resource group name]</rgn>'
        Name                = 'testvm-eus-01'
        Credential          = (Get-Credential)
        Location            = 'eastus'
        Image               = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts           = 22
        PublicIpAddressName = 'testvm-eus-01'
    }
    New-AzVm @azVmParams
    

    Sugerencia

    Puede usar el botón Copiar para copiar los comandos en el Portapapeles. Para pegarlos, haga clic con el botón derecho en una nueva línea en el terminal de Cloud Shell y seleccione Pegar, o bien use el método abreviado de teclado Mayús+Insert (⌘+V en macOS).

  2. Escriba Credenciales:

    Cuando se le solicite, escriba un nombre de usuario y una contraseña, siguiendo las instrucciones: las contraseñas deben tener entre 12 y 123 caracteres y cumplir tres de los siguientes cuatro requisitos de complejidad: caracteres en minúsculas, caracteres en mayúsculas, dígitos y caracteres especiales (Regex coincide con [\W_]). Para más información, consulte Preguntas más frecuentes sobre máquinas virtuales Linux.

  3. Espere a la creación de la máquina virtual:

    El proceso de creación de la máquina virtual tarda unos minutos en finalizar.

  4. Consulte la máquina virtual:

    Cuando haya finalizado, consulte la máquina virtual y asigne el objeto de máquina virtual a una variable ($vm).

    $vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    
  5. Vea información sobre la máquina virtual:

    Para ver información sobre la máquina virtual, muestre el contenido de la variable.

    $vm
    

    Ejemplo:

    ResourceGroupName : <rgn>[sandbox resource group name]</rgn>
    Id                : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/testvm-eus-01
    VmId              : 00000000-0000-0000-0000-000000000000
    Name              : testvm-eus-01
    Type              : Microsoft.Compute/virtualMachines
    Location          : eastus
    Tags              : {}
    HardwareProfile   : {VmSize}
    NetworkProfile    : {NetworkInterfaces}
    OSProfile         : {ComputerName, AdminUsername, LinuxConfiguration, Secrets}
    ProvisioningState : Succeeded
    StorageProfile    : {ImageReference, OsDisk, DataDisks}
    ...
    
  6. Inspección de las propiedades de la máquina virtual:

    Puede inspeccionar objetos complejos a través del operador de acceso a miembros (.). Por ejemplo, para ver las propiedades del objeto VMSize asociado a la sección HardwareProfile, ejecute el comando siguiente:

    $vm.HardwareProfile
    

    También puede obtener información sobre uno de los discos; para ello, ejecute el comando siguiente:

    $vm.StorageProfile.OsDisk
    
  7. Obtenga los tamaños de máquina virtual disponibles:

    Pase el objeto de máquina virtual a otros cmdlets para obtener tamaños disponibles:

    $vm | Get-AzVMSize
    
  8. Obtenga la dirección IP pública:

    Recupere la dirección IP pública para conectarse a la máquina virtual y almacenarla en una variable.

    $ip = Get-AzPublicIpAddress -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name testvm-eus-01
    
  9. Conéctese a la máquina virtual:

    Conéctese a la máquina virtual con SSH mediante la dirección IP de la variable. Por ejemplo, si el nombre de usuario es bob, use el siguiente comando:

    ssh bob@$($ip.IpAddress)
    

    Para cerrar sesión, escriba salir.

Eliminación de una máquina virtual

Para probar más comandos, vamos a eliminar la máquina virtual. Siga estos pasos:

  1. Apague la máquina virtual:

    Ejecute el siguiente comando:

    Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Escriba Y y presione Entrar cuando se le pida que continúe.

  2. Eliminar la máquina virtual:

    Una vez que se detenga la máquina virtual, elimínela mediante la ejecución del cmdlet Remove-AzVM.

    Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Escriba Y y presione Entrar cuando se le pida que continúe.

  3. Enumere todos los recursos del grupo de recursos:

    Use el cmdlet Get-AzResource para enumerar todos los recursos del grupo de recursos. Los resultados se canalizan a Select-Object para devolver propiedades específicas:

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

    Debería ver varios recursos, incluidos los discos, las redes virtuales, etc., que siguen existiendo:

    Name                    ResourceType                            ResourceGroupName
    ----                    ------------                            -----------------
    cloudshell              Microsoft.Storage/storageAccounts       <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/virtualNetworks       <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/publicIPAddresses     <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/networkSecurityGroups <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/networkInterfaces     <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01_OsDisk_1  Microsoft.Compute/disks                 <rgn>[sandbox resource group name]</rgn>
    

    El comando Remove-AzVM solo elimina la máquina virtual. No limpia ninguno de los demás recursos. Para limpiarlos manualmente, siga estos pasos:

  4. Elimine la interfaz de red:

    Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name |
        Remove-AzNetworkInterface
    

    Escriba Y y presione Entrar cuando se le pida que continúe.

  5. Elimine el grupo de seguridad de red:

    Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzNetworkSecurityGroup
    

    Escriba Y y presione Entrar cuando se le pida que continúe.

  6. Elimine la dirección IP pública:

    Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzPublicIpAddress
    

    Escriba Y y presione Entrar cuando se le pida que continúe.

  7. Elimine la red virtual:

    Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzVirtualNetwork
    

    Escriba Y y presione Entrar cuando se le pida que continúe.

  8. Elimine los discos administrados del SO:

    Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name |
        Remove-AzDisk
    

    Escriba Y y presione Entrar cuando se le pida que continúe.

  9. Compruebe que se quitaron todos los recursos:

    Compruebe el grupo de recursos para asegurarse de que se quitan todos los recursos:

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

Mientras ejecuta estos comandos de forma interactiva, un mejor enfoque es escribir un script de PowerShell. Los scripts permiten reutilizar la lógica para crear o eliminar una máquina virtual en el futuro

A continuación, veamos cómo automatizar estas tareas mediante un script de PowerShell.