Creación de máquinas virtuales con Azure PowerShell
En este tutorial, aprenderá todos los pasos necesarios para configurar una máquina virtual con Azure PowerShell. El tutorial también trata las consultas de salida, la reutilización de recursos de Azure y la limpieza de recursos.
Este tutorial se puede llevar a cabo con la experiencia interactiva que se ofrece mediante Azure Cloud Shell, y también se puede instalar Azure PowerShell localmente.
Use ctrl-Mayús-v (cmd-Mayús-v en Mac OS) para pegar el texto del tutorial en Azure Cloud Shell.
Iniciar sesión
Si usa una instalación local de Azure PowerShell, debe iniciar sesión antes de realizar otros pasos.
Connect-AzAccount
Complete el proceso de inicio de sesión siguiendo los pasos que se muestran en el terminal.
Crear un grupo de recursos
En Azure, todos los recursos se asignan en un grupo de administración de recursos. Los grupos de recursos proporcionan agrupaciones lógicas de recursos para hacer más fácil trabajar con ellos como una colección.
En este tutorial, todos los recursos creados se sitúan en un grupo llamado TutorialResources
.
New-AzResourceGroup -Name TutorialResources -Location eastus
ResourceGroupName : TutorialResources
Location : eastus
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources
Creación de las credenciales de administración para la máquina virtual
Para poder crear una nueva máquina virtual, debe crear un objeto de credenciales que contenga el nombre de usuario y la contraseña de la cuenta de administrador de la máquina virtual Windows.
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
Cuando se le solicite, escriba el nombre de usuario y la contraseña. El objeto de credenciales resultante se pasa como un parámetro en el paso siguiente.
Windows PowerShell credential request.
Enter a username and password for the virtual machine.
User: tutorAdmin
Password for user tutorAdmin: *********
Creación de una máquina virtual
Las máquinas virtuales en Azure tienen un gran número de dependencias. Azure PowerShell crea estos recursos en función de los argumentos de la línea de comandos que especifique. Para mejorar la legibilidad, estamos usando la expansión de PowerShell para pasar parámetros a los cmdlets de Azure PowerShell.
Cree una nueva máquina virtual que ejecuta Windows.
$vmParams = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM1'
Location = 'eastus'
ImageName = 'Win2016Datacenter'
PublicIpAddressName = 'tutorialPublicIp'
Credential = $cred
OpenPorts = 3389
Size = 'Standard_D2s_v3'
}
$newVM1 = New-AzVM @vmParams
Al crear la máquina virtual, verá los valores utilizados en los parámetros y los recursos de Azure que se van a crear. PowerShell mostrará una barra de progreso, tal y como se muestra a continuación.
Creating Azure resources
39% \
[ooooooooooooooooooooooooooooooooooo ]
Creating TutorialVM1 virtual machine.
Cuando la máquina virtual está lista, podemos ver los resultados en Azure Portal o en la variable $newVM1
.
$newVM1
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM1
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM1
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
Los valores de propiedad que se muestran dentro de llaves son objetos anidados. En el siguiente paso, mostraremos cómo ver los valores específicos de estos objetos anidados.
Obtención de información de la máquina virtual con consultas
Vamos a obtener información más detallada acerca de la máquina virtual que acabamos de crear. En este ejemplo, se comprueba el nombre de la máquina virtual y la cuenta de administrador que hemos creado.
$newVM1.OSProfile | Select-Object -Property ComputerName, AdminUserName
ComputerName AdminUsername
------------ -------------
TutorialVM1 tutorialAdmin
Podemos usar otros comandos de Azure PowerShell para obtener información específica sobre la configuración de red.
$newVM1 | Get-AzNetworkInterface |
Select-Object -ExpandProperty IpConfigurations |
Select-Object -Property Name, PrivateIpAddress
En este ejemplo, usamos la canalización de PowerShell para enviar el objeto $newVM1 al cmdlet Get-AzNetworkInterface
. En el objeto de interfaz de red resultante, seleccionamos el objeto anidado IpConfigurations. En el objeto IpConfigurations, se han seleccionado las propiedades Name y PrivateIpAddress.
Name PrivateIpAddress
---- ----------------
TutorialVM1 192.168.1.4
Para confirmar que la máquina virtual se está ejecutando, es necesario conectarse mediante Escritorio remoto. Para ello, debemos conocer la dirección IP pública.
$publicIp = Get-AzPublicIpAddress -Name tutorialPublicIp -ResourceGroupName TutorialResources
$publicIp |
Select-Object -Property Name, IpAddress, @{label='FQDN';expression={$_.DnsSettings.Fqdn}}
En este ejemplo, usamos Get-AzPublicIpAddress
y guardamos el resultado en la variable $publicIp
. En esta variable, seleccionamos las propiedades y utilizamos una expresión para recuperar la propiedad anidada Fqdn.
Name IpAddress FQDN
---- --------- ----
tutorialPublicIp <PUBLIC_IP_ADDRESS> tutorialvm1-8a0999.eastus.cloudapp.azure.com
En el equipo local, puede ejecutar el comando siguiente para conectarse a la máquina virtual a través de Escritorio remoto.
mstsc.exe /v $publicIp.IpAddress
Para más información sobre cómo realizar consultas sobre propiedades de objetos, consulte Consulta de los recursos de Azure.
Creación de una nueva máquina virtual en la subred existente
La segunda máquina virtual usa la subred existente.
$vm2Params = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM2'
ImageName = 'Win2016Datacenter'
VirtualNetworkName = 'TutorialVM1'
SubnetName = 'TutorialVM1'
PublicIpAddressName = 'tutorialPublicIp2'
Credential = $cred
OpenPorts = 3389
}
$newVM2 = New-AzVM @vm2Params
$newVM2
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM2
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM2
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : tutorialvm2-dfa5af.eastus.cloudapp.azure.com
Puede omitir algunos pasos para obtener la dirección IP pública de la nueva máquina virtual porque se devuelve en la propiedad FullyQualifiedDomainName del objeto $newVM2
. Utilice el comando siguiente para conectar mediante Escritorio remoto.
mstsc.exe /v $newVM2.FullyQualifiedDomainName
Limpieza
Ahora que ha finalizado el tutorial, es el momento de limpiar los recursos creados. Puede eliminar recursos individuales con el comando Remove-AzResource
, pero la forma más segura para eliminar todos los recursos de un grupo de recursos es eliminar el grupo con el comando Remove-AzResourceGroup
.
$job = Remove-AzResourceGroup -Name TutorialResources -Force -AsJob
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost Remove-AzResource...
Este comando elimina los recursos creados durante el tutorial y se garantiza que cancela la asignación de los mismos en el orden correcto. El parámetro AsJob
evita que PowerShell se bloquee mientras se realiza la eliminación. Para esperar hasta que se complete la eliminación, use el comando siguiente:
Wait-Job -Id $job.Id
Con la limpieza, ha finalizado el tutorial. Puede continuar con un resumen de todo lo aprendido y vínculos a recursos que le ayudarán con los pasos siguientes.
Resumen
Felicidades. Ha aprendido a crear máquinas virtuales con recursos nuevos y existentes, ha utilizado expresiones y otros comandos de Azure PowerShell para capturar los datos que se almacenan en variables del shell, y ha examinando algunos de los recursos que se crean para las máquinas virtuales de Azure.
Dónde irá desde aquí dependerá de cómo tenga previsto utilizar Azure PowerShell. Hay una variedad de materiales que estudian en profundidad las características tratadas en este tutorial.
Documentación detallada de Azure PowerShell
Quizás quiera dedicar un tiempo a explorar toda la documentación de Azure PowerShell.
Revise los artículos siguientes para más información sobre los comandos utilizados en este tutorial.
- New-AzResourceGroup
- Get-Credential
- New-AzVM
- Select-Object
- Get-AzPublicIpAddress
- Remove-AzResourceGroup
- Wait-Job
También hay artículos que profundizan en las características que se mostraron en el tutorial.
Muestras de scripts
Si desea comenzar inmediatamente con tareas específicas, examine algunos scripts de ejemplo.
Comentarios
Si desea proporcionar comentarios, sugerencias o plantear preguntas, hay varias maneras para ponerse en contacto.
Send-Feedback
es un comando integrado de Azure PowerShell que permite enviar comentarios libremente al equipo.- Puede enviar una solicitud de característica o un informe de errores en el repositorio de Azure PowerShell.
- Formule preguntas y obtenga aclaraciones mediante el envío de un problema en el repositorio de documentación de Azure PowerShell.
Esperamos que disfrute de Azure PowerShell.
¿Tiene algún problema con esta sección? Si es así, envíenos sus comentarios para que podamos mejorarla.