Tutorial: Creación y administración de máquinas virtuales Windows con Azure PowerShellTutorial: Create and Manage Windows VMs with Azure PowerShell

Las máquinas virtuales de Azure proporcionan un entorno informático completamente configurable y flexible.Azure virtual machines provide a fully configurable and flexible computing environment. En este tutorial se tratan tareas básicas de la implementación de máquinas virtuales de Azure, como la selección de su tamaño, la selección de una imagen de máquina virtual y la implementación de una máquina virtual.This tutorial covers basic Azure virtual machine (VM) deployment tasks like selecting a VM size, selecting a VM image, and deploying a VM. Aprenderá a:You learn how to:

  • Crear y conectar elementos a una máquina virtualCreate and connect to a VM
  • Seleccionar y usar imágenes de máquinas virtualesSelect and use VM images
  • Ver y usar tamaños de una máquina virtual específicosView and use specific VM sizes
  • Cambiar el tamaño de una máquina virtualResize a VM
  • Ver y entender el estado de las máquinas virtualesView and understand VM state

Inicio de Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos de este artículo.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Tiene las herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta.It has common Azure tools preinstalled and configured to use with your account.

Para abrir Cloud Shell, seleccione Pruébelo en la esquina superior derecha de un bloque de código.To open the Cloud Shell, just select Try it from the upper right corner of a code block. También puede ir a https://shell.azure.com/powershell para iniciar Cloud Shell en una pestaña independiente del explorador.You can also launch Cloud Shell in a separate browser tab by going to https://shell.azure.com/powershell. Seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y, luego, presione Entrar para ejecutarlos.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

Creación de un grupo de recursosCreate resource group

Cree un grupo de recursos con el comando New-AzResourceGroup.Create a resource group with the New-AzResourceGroup command.

Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.An Azure resource group is a logical container into which Azure resources are deployed and managed. Se debe crear un grupo de recursos antes de una máquina virtual.A resource group must be created before a virtual machine. En el siguiente ejemplo, se crea un grupo de recursos denominado myResourceGroupVM en la región EastUS:In the following example, a resource group named myResourceGroupVM is created in the EastUS region:

New-AzResourceGroup `
   -ResourceGroupName "myResourceGroupVM" `
   -Location "EastUS"

Se especifica el grupo de recursos al crear o modificar una máquina virtual, como se ve a lo largo de este tutorial.The resource group is specified when creating or modifying a VM, which can be seen throughout this tutorial.

Crear una VMCreate a VM

Al crear una máquina virtual, hay varias opciones disponibles, como la imagen del sistema operativo, la configuración de red y las credenciales administrativas.When creating a VM, several options are available like operating system image, network configuration, and administrative credentials. En este ejemplo se crea una máquina virtual denominada myVM que ejecuta la versión predeterminada de Windows Server 2016 Datacenter.This example creates a VM named myVM, running the default version of Windows Server 2016 Datacenter.

Establezca el nombre de usuario y la contraseña que se necesitan para la cuenta de administrador en la máquina virtual con Get-Credential:Set the username and password needed for the administrator account on the VM with Get-Credential:

$cred = Get-Credential

Cree la máquina virtual con New-AzVM.Create the VM with New-AzVM.

New-AzVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress" `
    -Credential $cred

Conexión con una máquina virtualConnect to VM

Una vez finalizada la implementación, cree una conexión del escritorio remoto con la máquina virtual.After the deployment has completed, create a remote desktop connection with the VM.

Ejecute los siguientes comandos para devolver la dirección IP pública de la máquina virtual.Run the following commands to return the public IP address of the VM. Tome nota de esta dirección IP para poder conectarse a ella con un explorador para probar la conectividad web en un paso posterior.Take note of this IP Address so you can connect to it with your browser to test web connectivity in a future step.

Get-AzPublicIpAddress `
   -ResourceGroupName "myResourceGroupVM"  | Select IpAddress

Ejecute el siguiente comando en la máquina local para crear una sesión de escritorio remoto con la máquina virtual.Use the following command, on your local machine, to create a remote desktop session with the VM. Reemplace la dirección IP por el valor de publicIPAddress de la máquina virtual.Replace the IP address with the publicIPAddress of your VM. Cuando se le solicite, escriba las credenciales usadas al crear la máquina virtual.When prompted, enter the credentials used when creating the VM.

mstsc /v:<publicIpAddress>

En la ventana Seguridad de Windows, seleccione Más opciones y, después, Usar otra cuenta.In the Windows Security window, select More choices and then Use a different account. Escriba el nombre de usuario y la contraseña que creó para la máquina virtual y haga clic en Aceptar.Type the username and password you created for the VM and then click OK.

Descripción de las imágenes de MarketplaceUnderstand marketplace images

Azure Marketplace incluye muchas imágenes que pueden usarse para crear una máquina virtual.The Azure marketplace includes many images that can be used to create a new VM. En los pasos anteriores se creó una máquina virtual mediante la imagen de Windows Server 2016 Datacenter.In the previous steps, a VM was created using the Windows Server 2016 Datacenter image. En este paso, el módulo de PowerShell se usa para buscar en Marketplace otras imágenes de Windows, que también se pueden usar como base para nuevas máquinas virtuales.In this step, the PowerShell module is used to search the marketplace for other Windows images, which can also be used as a base for new VMs. Este proceso consiste en buscar el publicador, la oferta, la SKU y, opcionalmente, un número de versión para identificar la imagen.This process consists of finding the publisher, offer, SKU, and optionally a version number to identify the image.

Use el comando Get-AzVMImagePublisher para devolver una lista de publicadores de imágenes:Use the Get-AzVMImagePublisher command to return a list of image publishers:

Get-AzVMImagePublisher -Location "EastUS"

Use el comando Get-AzVMImageOffer para devolver una lista de ofertas de imágenes.Use the Get-AzVMImageOffer to return a list of image offers. Con este comando, la lista devuelta se filtra por el publicador especificado denominado MicrosoftWindowsServer:With this command, the returned list is filtered on the specified publisher named MicrosoftWindowsServer:

Get-AzVMImageOffer `
   -Location "EastUS" `
   -PublisherName "MicrosoftWindowsServer"

Los resultados deberán tener un aspecto similar a este ejemplo:The results will look something like this example:

Offer             PublisherName          Location
-----             -------------          --------
Windows-HUB       MicrosoftWindowsServer EastUS
WindowsServer     MicrosoftWindowsServer EastUS
WindowsServer-HUB MicrosoftWindowsServer EastUS

El comando Get-AzVMImageSku filtrará entonces por el publicador y el nombre de la oferta para devolver una lista de nombres de imágenes.The Get-AzVMImageSku command will then filter on the publisher and offer name to return a list of image names.

Get-AzVMImageSku `
   -Location "EastUS" `
   -PublisherName "MicrosoftWindowsServer" `
   -Offer "WindowsServer"

Los resultados deberán tener un aspecto similar a este ejemplo:The results will look something like this example:

Skus                                      Offer         PublisherName          Location
----                                      -----         -------------          --------
2008-R2-SP1                               WindowsServer MicrosoftWindowsServer EastUS  
2008-R2-SP1-smalldisk                     WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter                        WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter-smalldisk              WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core               WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core-smalldisk     WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers           WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers-smalldisk WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-RDSH                 WindowsServer MicrosoftWindowsServer EastUS
2016-Nano-Server                          WindowsServer MicrosoftWindowsServer EastUS

Esta información puede usarse para implementar una máquina virtual con una imagen específica.This information can be used to deploy a VM with a specific image. En este ejemplo se implementa una máquina virtual mediante la versión más reciente de Windows Server 2016 con una imagen de Containers.This example deploys a VM using the latest version of a Windows Server 2016 with Containers image.

New-AzVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM2" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress2" `
    -ImageName "MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest" `
    -Credential $cred `
    -AsJob

El parámetro -AsJob crea la máquina virtual como tarea en segundo plano, por lo que PowerShell solicita la vuelta.The -AsJob parameter creates the VM as a background task, so the PowerShell prompts return to you. Puede ver detalles de trabajos en segundo plano con el cmdlet Get-Job.You can view details of background jobs with the Get-Job cmdlet.

Comprensión de los tamaños de máquina virtualUnderstand VM sizes

El tamaño de la máquina virtual determina la cantidad de recursos de proceso, como memoria, CPU y GPU, que están disponibles para la máquina virtual.The VM size determines the amount of compute resources like CPU, GPU, and memory that are made available to the VM. Las máquinas virtuales deben crearse con un tamaño de máquina virtual adecuado para la carga de trabajo.Virtual machines should be created using a VM size appropriate for the workload. Si esta aumenta, también se puede cambiar el tamaño de las máquinas virtuales existentes.If a workload increases, an existing virtual machine can also be resized.

Tamaños de máquina virtualVM Sizes

En la tabla siguiente se clasifican los tamaños en casos de uso.The following table categorizes sizes into use cases.

typeType Tamaños comunesCommon sizes DESCRIPCIÓNDescription
Uso generalGeneral purpose B, Dsv3, Dv3, DSv2, Dv2, Av2, DCB, Dsv3, Dv3, DSv2, Dv2, Av2, DC Uso equilibrado de CPU y memoria.Balanced CPU-to-memory. Ideal para desarrollo/pruebas, así como soluciones de datos y aplicaciones de tamaño pequeño a mediano.Ideal for dev / test and small to medium applications and data solutions.
Proceso optimizadoCompute optimized Fsv2Fsv2 Uso elevado de la CPU respecto a la memoria.High CPU-to-memory. Adecuado para aplicaciones, dispositivos de red y procesos por lotes con tráfico mediano.Good for medium traffic applications, network appliances, and batch processes.
Memoria optimizadaMemory optimized Esv3, Ev3, M, DSv2, Dv2Esv3, Ev3, M, DSv2, Dv2 Uso elevado de memoria respecto al núcleo.High memory-to-core. Excelente para bases de datos relacionales, memorias caché de capacidad de mediana a grande y análisis en memoria.Great for relational databases, medium to large caches, and in-memory analytics.
Almacenamiento optimizadoStorage optimized Lsv2, LsLsv2, Ls Alto rendimiento de disco y E/S.High disk throughput and IO. Perfecto para bases de datos SQL y NoSQL y macrodatos.Ideal for Big Data, SQL, and NoSQL databases.
GPUGPU NV, NVv2, NC, NCv2, NCv3, NDNV, NVv2, NC, NCv2, NCv3, ND Máquinas virtuales especializadas para actividades intensas de representación de gráficos y edición de vídeo.Specialized VMs targeted for heavy graphic rendering and video editing.
Alto rendimientoHigh performance HH Nuestras máquinas virtuales con CPU más eficaces e interfaces de red de alto rendimiento (RDMA) opcionales.Our most powerful CPU VMs with optional high-throughput network interfaces (RDMA).

Búsqueda de los tamaños de máquina virtual disponiblesFind available VM sizes

Para ver una lista de tamaños de máquina virtual disponibles en una región determinada, use el comando Get-AzVMSize.To see a list of VM sizes available in a particular region, use the Get-AzVMSize command.

Get-AzVMSize -Location "EastUS"

Cambiar el tamaño de una máquina virtualResize a VM

Una vez implementada una máquina virtual, se puede cambiar su tamaño para aumentar o disminuir la asignación de recursos.After a VM has been deployed, it can be resized to increase or decrease resource allocation.

Antes de cambiar el tamaño de una máquina virtual, compruebe si el tamaño deseado está disponible en el clúster actual de máquinas virtuales.Before resizing a VM, check if the size you want is available on the current VM cluster. El comando Get-AzVMSize devuelve una lista de tamaños.The Get-AzVMSize command returns a list of sizes.

Get-AzVMSize -ResourceGroupName "myResourceGroupVM" -VMName "myVM"

Si el tamaño está disponible, puede cambiarlo con la máquina virtual encendida, aunque se reiniciará durante la operación.If the size is available, the VM can be resized from a powered-on state, however it is rebooted during the operation.

$vm = Get-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_DS3_v2"
Update-AzVM `
   -VM $vm `
   -ResourceGroupName "myResourceGroupVM"

Si el tamaño que desea no está disponible en el clúster actual, se debe desasignar la máquina virtual para que se pueda llevar a cabo la operación de cambio de tamaño.If the size you want isn't available on the current cluster, the VM needs to be deallocated before the resize operation can occur. La desasignación de una máquina virtual se traduce en la eliminación de los datos del disco temporal y la dirección IP pública cambiará, a menos que se use una dirección IP estática.Deallocating a VM will remove any data on the temp disk, and the public IP address will change unless a static IP address is being used.

Stop-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM" -Force
$vm = Get-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_E2s_v3"
Update-AzVM -VM $vm `
   -ResourceGroupName "myResourceGroupVM"
Start-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -Name $vm.name

Estados de energía de una máquina virtualVM power states

Una máquina virtual de Azure puede tener uno de muchos estados de energía.An Azure VM can have one of many power states.

Estado de energíaPower State DESCRIPCIÓNDescription
IniciandoStarting La máquina virtual se está iniciando.The virtual machine is being started.
En ejecuciónRunning La máquina virtual se está ejecutando.The virtual machine is running.
DeteniéndoseStopping La máquina virtual se está deteniendo.The virtual machine is being stopped.
DetenidoStopped La máquina virtual está detenida.The VM is stopped. Las máquinas virtuales en el estado detenido siguen acumulando cargos por procesos.Virtual machines in the stopped state still incur compute charges.
DesasignandoDeallocating La máquina virtual se está desasignando.The VM is being deallocated.
DesasignadoDeallocated Indica que la máquina virtual se quitó del hipervisor, pero sigue estando disponible en el plano de control.Indicates that the VM is removed from the hypervisor but is still available in the control plane. Las máquinas virtuales en el estado Deallocated no incurren en cargos por los procesos.Virtual machines in the Deallocated state do not incur compute charges.
- Se desconoce el estado de la máquina virtual.The power state of the VM is unknown.

Para recuperar el estado de una máquina virtual concreta, use el comando Get-AzVM.To get the state of a particular VM, use the Get-AzVM command. Asegúrese de especificar un nombre válido para la máquina virtual y el grupo de recursos.Be sure to specify a valid name for a VM and resource group.

Get-AzVM `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Status | Select @{n="Status"; e={$_.Statuses[1].Code}}

El resultado tendrá un aspecto similar al siguiente ejemplo:The output will look something like this example:

Status
------
PowerState/running

Tareas de administraciónManagement tasks

Durante el ciclo de vida de una máquina virtual, puede que desee ejecutar tareas de administración como iniciarla, detenerla o eliminarla.During the lifecycle of a VM, you may want to run management tasks like starting, stopping, or deleting a VM. Además, puede crear scripts para automatizar tareas repetitivas o complejas.Additionally, you may want to create scripts to automate repetitive or complex tasks. Con Azure PowerShell, se pueden ejecutar muchas tareas comunes de administración desde la línea de comandos o en scripts.Using Azure PowerShell, many common management tasks can be run from the command line or in scripts.

Detención de una máquina virtualStop a VM

Detenga y desasigne una máquina virtual con Stop-AzVM:Stop and deallocate a VM with Stop-AzVM:

Stop-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM" -Force

Si desea mantener la máquina virtual en un estado aprovisionado, use el parámetro -StayProvisioned.If you want to keep the VM in a provisioned state, use the -StayProvisioned parameter.

Inicio de una máquina virtualStart a VM

Start-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM"

Eliminación de un grupo de recursosDelete resource group

Todo el contenido dentro de un grupo de recursos se elimina al eliminar el grupo de recursos.Everything inside of a resource group is deleted when you delete the resource group.

Remove-AzResourceGroup `
   -Name "myResourceGroupVM" `
   -Force

Pasos siguientesNext steps

En este tutorial, ha aprendido conceptos básicos sobre la creación y administración de máquinas virtuales. Por ejemplo:In this tutorial, you learned about basic VM creation and management such as how to:

  • Crear y conectar elementos a una máquina virtual.Create and connect to a VM
  • Seleccionar y usar imágenes de máquinas virtualesSelect and use VM images
  • Ver y usar tamaños de una máquina virtual específicosView and use specific VM sizes
  • Cambiar el tamaño de una máquina virtualResize a VM
  • Ver y entender el estado de las máquinas virtuales.View and understand VM state

Prosiga con el siguiente tutorial para aprender sobre los discos en máquinas virtuales.Advance to the next tutorial to learn about VM disks.