Ejercicio: Creación de un recurso de Azure de forma interactiva con Azure PowerShell
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:
Use el cmdlet
New-AzVMpara 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-Credentialpara establecer las credenciales de administrador de máquina virtual. - Agregue el parámetro OpenPorts con el puerto
22para 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 @azVmParamsReemplace 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).
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.
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.
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 myResourceGroupNameVea información sobre la máquina virtual:
Para ver información sobre la máquina virtual, muestre el contenido de la variable.
$vmSalida 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} ...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 delVMSizeobjeto asociado a la sección HardwareProfile , ejecute el siguiente comando:$vm.HardwareProfileTambién puede obtener información sobre uno de los discos; para ello, ejecute el comando siguiente:
$vm.StorageProfile.OsDiskObtenga 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-AzVMSizeObtenga 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-01Coné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:
Apague la máquina virtual:
Ejecute el siguiente comando:
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupNameEscriba Y y presione Entrar cuando se le pida que continúe.
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.ResourceGroupNameEscriba Y y presione Entrar cuando se le pida que continúe.
Enumere todos los recursos del grupo de recursos:
Use el cmdlet
Get-AzResourcepara enumerar todos los recursos del grupo de recursos. Los resultados se canalizan aSelect-Objectpara devolver propiedades específicas:Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupNameDeberí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 myResourceGroupNameEl comando
Remove-AzVMsolo elimina la máquina virtual. No limpia ninguno de los demás recursos. Para limpiarlos manualmente, siga estos pasos:Elimine la interfaz de red:
Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name | Remove-AzNetworkInterfaceEscriba Y y presione Entrar cuando se le pida que continúe.
Elimine el grupo de seguridad de red:
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroupEscriba Y y presione Entrar cuando se le pida que continúe.
Elimine la dirección IP pública:
Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddressEscriba Y y presione Entrar cuando se le pida que continúe.
Elimine la red virtual:
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetworkEscriba Y y presione Entrar cuando se le pida que continúe.
Elimine los discos administrados del SO:
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDiskEscriba Y y presione Entrar cuando se le pida que continúe.
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.