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.

Nota:

Este ejercicio es opcional. Si desea completar este ejercicio, deberá crear una suscripción de Azure antes de comenzar. Si no tiene una cuenta de Azure o no quiere crear una en este momento, puede leer las instrucciones para que comprenda la información que se presenta.

Nota:

Debe usar un grupo de recursos para completar los pasos de este ejercicio. Puede usar un grupo de recursos que ya ha creado o puede crear un nuevo grupo de recursos específicamente para este ejercicio. Si decide crear un nuevo grupo de recursos, esto facilitará la limpieza de los recursos que cree a medida que complete el ejercicio. Si no tiene un grupo de recursos existente o desea crear uno nuevo específicamente para este ejercicio, puede seguir los pasos descritos en Uso de Azure Portal y Azure Resource Manager para administrar grupos de recursos para crear un grupo de recursos mediante Azure Portal, o puede seguir los pasos descritos en Administración de grupos de recursos de Azure mediante la CLI de Azure para crear un grupo de recursos mediante la CLI de Azure.

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

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 de la máquina virtual.
    • 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 regiones de Azure disponibles.
    • 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 el puerto 22 para el acceso SSH.
    • Cree un nombre de dirección IP pública para el inicio de sesión SSH.
    $azVmParams = @{
        ResourceGroupName   = 'myResourceGroupName'
        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
    

    Reemplace myResourceGroupName en el ejemplo anterior por el nombre de un grupo de recursos existente o el nombre del grupo de recursos que creó para este ejercicio.

    Sugerencia

    Puede usar el botón Copiar para copiar comandos en el Portapapeles. Para pegarlo, haga clic con el botón derecho en una nueva línea en el terminal de Cloud Shell y seleccione Pegar o use el método abreviado de teclado Mayús+Insertar (⌘+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 myResourceGroupName
    
  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
    

    Salida de ejemplo:

    ResourceGroupName : myResourceGroupName
    Id                : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupName/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 VMSize objeto asociado a la sección HardwareProfile , ejecute el siguiente comando:

    $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 myResourceGroupName -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)
    

    Cierre la sesión escribiendo 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       myResourceGroupName
    testvm-eus-01           Microsoft.Network/virtualNetworks       myResourceGroupName
    testvm-eus-01           Microsoft.Network/publicIPAddresses     myResourceGroupName
    testvm-eus-01           Microsoft.Network/networkSecurityGroups myResourceGroupName
    testvm-eus-01           Microsoft.Network/networkInterfaces     myResourceGroupName
    testvm-eus-01_OsDisk_1  Microsoft.Compute/disks                 myResourceGroupName
    

    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.