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. En el tutorial también se tratan las consultas de salida, la reutilización de recursos de Azure y la limpieza de recursos.
Este tutorial se puede completar con la experiencia interactiva que se ofrece a través de Azure Cloud Shell o puede instalar Azure PowerShell localmente.
Use ctrl-shift-v (cmd-shift-v en macOS) para pegar texto del tutorial en Azure Cloud Shell.
Inicia 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.
Creación de 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 que facilitan su trabajo como colección.
En este tutorial, todos los recursos creados entran en un único grupo denominado 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 credenciales de administrador para la máquina virtual
Para poder crear una nueva máquina virtual, debe crear un objeto de credencial 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."
Escriba el nombre de usuario y la contraseña cuando se le solicite. El objeto de credencial resultante se pasa como 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 de Azure tienen un gran número de dependencias. Azure PowerShell crea estos recursos automáticamente en función de los argumentos de la línea de comandos que especifique. Para mejorar la legibilidad, usamos de expansión de PowerShell para pasar parámetros a los cmdlets de Azure PowerShell.
Cree una nueva máquina virtual que ejecute Windows.
$vmParams = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM1'
Location = 'eastus'
ImageName = 'Win2016Datacenter'
PublicIpAddressName = 'tutorialPublicIp'
Credential = $cred
OpenPorts = 3389
Size = 'Standard_D2s_v3'
}
$newVM1 = New-AzVM @vmParams
A medida que se crea la máquina virtual, verá los valores de parámetro usados y los recursos de Azure que se están creando. PowerShell mostrará una barra de progreso como se muestra a continuación.
Creating Azure resources
39% \
[ooooooooooooooooooooooooooooooooooo ]
Creating TutorialVM1 virtual machine.
Una vez que la máquina virtual esté lista, podemos ver los resultados en Azure Portal o inspeccionando 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 enumerados dentro de llaves son objetos anidados. En el paso siguiente le mostraremos cómo ver valores específicos en estos objetos anidados.
Obtención de información de máquina virtual con consultas
Vamos a obtener información más detallada de la máquina virtual que acabamos de crear. En este ejemplo, comprobamos el nombre de la máquina virtual y la cuenta de administrador que creamos.
$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 se usa la canalización de PowerShell para enviar el objeto $newVM 1 al cmdlet Get-AzNetworkInterface
. En el objeto de interfaz de red resultante, se selecciona el objeto IpConfigurations anidado. En el objeto IpConfigurations se seleccionan 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 a través de Escritorio remoto. Para ello, es necesario 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 el Get-AzPublicIpAddress
y almacenamos los resultados en la variable $publicIp
. En esta variable se seleccionan propiedades y se usa una expresión para recuperar la propiedad Fqdn anidada.
Name IpAddress FQDN
---- --------- ----
tutorialPublicIp <PUBLIC_IP_ADDRESS> tutorialvm1-8a0999.eastus.cloudapp.azure.com
Desde la máquina local, puede ejecutar el siguiente comando para conectarse a la máquina virtual a través de Escritorio remoto.
mstsc.exe /v $publicIp.IpAddress
Para obtener más información sobre cómo consultar las propiedades del objeto, consulte Consulta de recursos de Azure.
Creación de una 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, ya que se devuelve en la propiedad FullyQualifiedDomainName del objeto $newVM2
. Use el siguiente comando para conectarse mediante Escritorio remoto.
mstsc.exe /v $newVM2.FullyQualifiedDomainName
Limpieza
Ahora que se ha completado el tutorial, es el momento de limpiar los recursos creados. Puede eliminar recursos individuales con el comando Remove-AzResource
, pero la manera más segura de quitar todos los recursos de un grupo de recursos es eliminar el grupo mediante 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 los desasigne en el orden correcto. El parámetro AsJob
impide que PowerShell bloquee mientras se realiza la eliminación. Para esperar hasta que se complete la eliminación, use el siguiente comando:
Wait-Job -Id $job.Id
Con la limpieza completada, el tutorial ha finalizado. Continúe para obtener un resumen de todo lo que ha aprendido y los vínculos a los recursos que le ayudarán con los pasos siguientes.
Resumen
¡Felicidades! Ha aprendido a crear máquinas virtuales con recursos nuevos o existentes, expresiones usadas y otros comandos de Azure PowerShell para capturar datos que se van a almacenar en variables de shell y examinar algunos de los recursos que se crean para máquinas virtuales de Azure.
La ubicación desde aquí depende de cómo planee usar Azure PowerShell. Hay una variedad de materiales que profundizan en las características que se tratan en este tutorial.
Documentación detallada de Azure PowerShell
Es posible que quiera tardar tiempo en explorar el conjunto de
Para obtener más información sobre los comandos usados en este tutorial, consulte los artículos siguientes.
- New-AzResourceGroup
- Get-Credential
- new-AzVM
- Select-Object
- Get-AzPublicIpAddress
- Remove-AzResourceGroup
- de trabajo de espera
También hay artículos que profundizan en las características que se muestran en el tutorial.
- de expansión de PowerShell
- consultas
- formato de
- uso de trabajos de PowerShell
Scripts de ejemplo
Si desea empezar de inmediato con tareas específicas, examine algunos scripts de ejemplo.
- de Azure App Service
- de bases de datos SQL de
- de Cosmos DB
- repositorio de ejemplos
Retroalimentación
Si desea enviar comentarios, sugerencias o formular preguntas, hay varias maneras de ponerse en contacto con usted.
-
Send-Feedback
es un comando integrado para Azure PowerShell que permite proporcionar comentarios de forma libre al equipo. - Archivo de una solicitud de característica o un informe de errores en el repositorio de Azure PowerShell de .
- Formule una pregunta o obtenga una aclaración mediante la presentación de un problema en el repositorio de documentación de Azure PowerShell.
Esperamos que disfrute de usar Azure PowerShell.
¿Tiene algún problema con esta sección? Si es así, envíenos sus comentarios para que podamos mejorarla.