Implementación de VM en el dispositivo Azure Stack Edge mediante Azure PowerShell
SE APLICA A: Azure Stack Edge Pro: GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
En este artículo se describe cómo crear y administrar una máquina virtual en el dispositivo Azure Stack Edge mediante Azure PowerShell.
Flujo de trabajo de implementación de una VM
El flujo de trabajo de implementación general de la implementación de máquina virtual es el siguiente:
- Conéctese a Azure Resource Manager local en el dispositivo.
- Identifique la suscripción integrada en el dispositivo.
- Traiga su imagen de máquina virtual.
- Cree un grupo de recursos en la suscripción integrada. El grupo de recursos contiene la máquina virtual y todos los recursos relacionados.
- Cree una cuenta de almacenamiento local en el dispositivo para almacenar el disco duro virtual que se usa para crear una imagen de máquina virtual.
- Cargue una imagen de origen de Windows o Linux en la cuenta de almacenamiento para crear un disco administrado.
- Use el disco administrado para crear una imagen de máquina virtual.
- Habilite el proceso en un puerto de dispositivo para crear un conmutador virtual.
- Se crea una red virtual mediante el conmutador virtual conectado al puerto en el que ha habilitado el proceso.
- Cree una máquina virtual con la imagen de máquina virtual, la red virtual y las interfaces de red virtual creadas anteriormente para comunicarse dentro de la red virtual y asigne una dirección IP pública para acceder de forma remota a la máquina virtual. También puede incluir discos de datos para proporcionar más almacenamiento para la máquina virtual.
Requisitos previos
Para poder implementar VM en el dispositivo Azure Stack Edge, debe configurar el cliente para que se conecte al dispositivo mediante Azure Resource Manager con Azure PowerShell. Para consultar las instrucciones detalladas, vaya a Conexión a Azure Resource Manager en un dispositivo Azure Stack Edge Pro.
Asegúrese de que se pueden usar los pasos siguientes para acceder al dispositivo desde el cliente. Ya ha realizado esta configuración cuando se conectó a Azure Resource Manager y ahora está comprobando que la configuración se ha realizado correctamente.
Ejecute el siguiente comando para comprobar que la comunicación de Azure Resource Manager funciona:
Para llamar a las API de dispositivo local para autenticarse, escriba:
Si configuró el proceso para Kubernetes, puede omitir este paso. De lo contrario, asegúrese de que ha habilitado una interfaz de red para el proceso de la siguiente manera:
a. En la interfaz de usuario local, vaya la configuración de Proceso.
b. Seleccione la interfaz de red que desea usar para crear un conmutador virtual. Las máquinas virtuales que cree se adjuntarán a un conmutador virtual conectado a este puerto y a la red asociada. Asegúrese de elegir una red que coincida con la dirección IP que usará para la máquina virtual.c. En Enable for compute (Habilitar para proceso) en la interfaz de red, seleccione Yes (Sí). Azure Stack Edge creará y administrará un conmutador virtual correspondiente a esa interfaz de red. No especifique direcciones IP específicas para Kubernetes en este momento. La habilitación del proceso puede tardar varios minutos.
Nota:
Si va a crear máquinas virtuales de GPU, seleccione una interfaz de red conectada a Internet, ya que ello le permite instalar una extensión de GPU en el dispositivo.
Consulta de la suscripción integrada en el dispositivo
Para Azure Resource Manager, solo se admite una única suscripción fija que es visible por el usuario. Esta suscripción es única por dispositivo y no se pueden cambiar el nombre y el identificador de suscripción.
La suscripción contiene todos los recursos necesarios para la creación de máquinas virtuales.
Importante
La suscripción se crea al habilitar las máquinas virtuales desde Azure Portal y reside localmente en el dispositivo.
La suscripción se usa para implementar las máquinas virtuales.
Para enumerar la suscripción, ejecute el siguiente comando:
Get-AzSubscription
A continuación se muestra una salida de ejemplo:
PS C:\WINDOWS\system32> Get-AzSubscription Name Id TenantId ---- -- -------- Default Provider Subscription ... ... PS C:\WINDOWS\system32>
Obtenga la lista de los proveedores de recursos registrados que se ejecutan en el dispositivo. Normalmente, la lista incluye proceso, red y almacenamiento.
Get-AzResourceProvider
Nota:
Los proveedores de recursos están registrados previamente y no se pueden modificar ni cambiar.
A continuación se muestra una salida de ejemplo:
PS C:\WINDOWS\system32> Get-AzResourceProvider ProviderNamespace : Microsoft.AzureBridge RegistrationState : Registered ResourceTypes : {locations, operations, locations/ingestionJobs} Locations : {DBELocal} ProviderNamespace : Microsoft.Compute RegistrationState : Registered ResourceTypes : {virtualMachines, virtualMachines/extensions, locations, operations...} Locations : {DBELocal} ProviderNamespace : Microsoft.Network RegistrationState : Registered ResourceTypes : {operations, locations, locations/operations, locations/usages...} Locations : {DBELocal} ProviderNamespace : Microsoft.Resources RegistrationState : Registered ResourceTypes : {tenants, locations, providers, checkresourcename...} Locations : {DBELocal} ProviderNamespace : Microsoft.Storage RegistrationState : Registered ResourceTypes : {storageaccounts, storageAccounts/blobServices, storageAccounts/tableServices, storageAccounts/queueServices...} Locations : {DBELocal} PS C:\WINDOWS\system32>
Crear un grupo de recursos
Empiece por crear un nuevo grupo de recursos de Azure y úselo como contenedor lógico para todos los recursos relacionados con la máquina virtual, como la cuenta de almacenamiento, el disco, la interfaz de red y el disco administrado.
Importante
Todos los recursos se crean en la misma ubicación que el dispositivo, y la ubicación se establece en DBELocal.
Configure algunos parámetros.
$ResourceGroupName = "<Resource group name>"
Cree un grupo de recursos para los recursos que cree para la máquina virtual.
New-AzResourceGroup -Name $ResourceGroupName -Location DBELocal
A continuación se muestra una salida de ejemplo:
PS C:\WINDOWS\system32> New-AzResourceGroup -Name myaseazrg -Location DBELocal ResourceGroupName : myaseazrg Location : dbelocal ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/.../resourceGroups/myaseazrg PS C:\WINDOWS\system32>
Creación de una cuenta de almacenamiento local
Cree una nueva cuenta de almacenamiento local con un grupo de recursos que ya tenga. Use esta cuenta de almacenamiento local para cargar la imagen de disco virtual cuando cree una máquina virtual.
Antes de crear una cuenta de almacenamiento local, debe configurar el cliente para que se conecte al dispositivo por medio de Azure Resource Manager a través de Azure PowerShell. Para consultar las instrucciones detalladas, vaya a Conexión a Azure Resource Manager en un dispositivo Azure Stack Edge Pro.
Configure algunos parámetros.
$StorageAccountName = "<Storage account name>"
Cree una nueva cuenta de almacenamiento local en el dispositivo.
New-AzStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourceGroupName -Location DBELocal -SkuName Standard_LRS
Nota:
Con Azure Resource Manager, solo puede crear cuentas de almacenamiento local, como almacenamiento con redundancia local (estándar o prémium). Para crear cuentas de almacenamiento en niveles, consulte Tutorial: Transferencia de datos a través de cuentas de almacenamiento de Azure Stack Edge Pro con GPU.
Este es un ejemplo de salida:
PS C:\WINDOWS\system32> New-AzStorageAccount -Name myaseazsa -ResourceGroupName myaseazrg -Location DBELocal -SkuName Standard_LRS StorageAccountName ResourceGroupName PrimaryLocation SkuName Kind AccessTier CreationTime ------------------ ----------------- --------------- ------- ---- ---------- ------------ myaseazsa myaseazrg DBELocal Standard_LRS Storage 6/10/2021 11:45... PS C:\WINDOWS\system32>
Para obtener las claves de acceso de una cuenta de almacenamiento local que haya creado, proporcione el nombre del grupo de recursos asociado y el nombre de la cuenta de almacenamiento local.
Get-AzStorageAccountKey
Este es un ejemplo de salida:
PS C:\WINDOWS\system32> Get-AzStorageAccountKey
cmdlet Get-AzStorageAccountKey at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
ResourceGroupName: myaseazrg
Name: myaseazsa
KeyName Value Permissions
------- ----- ------
key1 gv3OF57tuPDyzBNc1M7fhil2UAiiwnhTT6zgiwE3TlF/CD217Cvw2YCPcrKF47joNKRvzp44leUe5HtVkGx8RQ== Full
key2 kmEynIs3xnpmSxWbU41h5a7DZD7v4gGV3yXa2NbPbmhrPt10+QmE5PkOxxypeSqbqzd9si+ArNvbsqIRuLH2Lw== Full
PS C:\WINDOWS\system32>
Adición del URI del blob al archivo de host
Ya ha agregado el identificador URI del blob en el archivo de hosts del cliente que usa para conectarse a Azure Blob Storage en Modificación del archivo de host para la resolución de nombres de punto de conexión de Conexión a Azure Resource Manager en un dispositivo Azure Stack Edge Pro. Esta entrada se usó para agregar el URI del blob:
<Device IP address>
<storage name>.blob.<appliance name>.<dnsdomain>
Instalación de certificados
Si usa HTTPS, tendrá que instalar los certificados adecuados en el dispositivo. En este caso, instale el certificado del punto de conexión de blob. Para más información, consulte Uso de certificados con el dispositivo Azure Stack Edge Pro con GPU.
Carga de un disco duro virtual
Copie las imágenes de disco que se van a usar en blobs en páginas en la cuenta de almacenamiento local que creó anteriormente. Puede usar una herramienta como AzCopy para cargar el disco duro virtual (VHD) en la cuenta de almacenamiento.
Use los comandos siguientes con AzCopy 10:
Establezca algunos parámetros, incluida la versión adecuada de las API para AzCopy. En este ejemplo, se ha utilizado AzCopy 10.
$Env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2019-07-07" $ContainerName = <Container name> $ResourceGroupName = <Resource group name> $StorageAccountName = <Storage account name> $VHDPath = "Full VHD Path" $VHDFile = <VHD file name>
Copie el disco duro virtual del origen (en este caso, el sistema local) en la cuenta de almacenamiento que creó en el dispositivo en el paso anterior.
$StorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value $blobendpoint = (Get-AzEnvironment -Name Environment Name).StorageEndpointSuffix $StorageAccountContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -Endpoint $blobendpoint <Create the container if it does not exist> $containerName = "con1" $container = New-AzStorageContainer -Name $containerName -Context $StorageAccountContext -Permission Container $StorageAccountSAS = New-AzStorageAccountSASToken -Service Blob -ResourceType Container,Service,Object -Permission "acdlrw" -Context $StorageAccountContext -Protocol HttpsOnly $endPoint = (Get-AzStorageAccount -name $StorageAccountName -ResourceGroupName $ResourceGroupName).PrimaryEndpoints.Blob <Path to azcopy.exe> cp "$VHDPath\$VHDFile" "$endPoint$ContainerName$StorageAccountSAS"
Este es un ejemplo de salida:
PS C:\windows\system32> $ContainerName = "testcontainer1" PS C:\windows\system32> $ResourceGroupName = "myaseazrg" PS C:\windows\system32> $StorageAccountName = "myaseazsa" PS C:\windows\system32> $VHDPath = "C:\Users\alkohli\Downloads\Ubuntu1604" PS C:\windows\system32> $VHDFile = "ubuntu13.vhd" PS C:\windows\system32> $StorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value PS C:\windows\system32> $endPoint = (Get-AzStorageAccount -name $StorageAccountName -ResourceGroupName $ResourceGroupName).PrimaryEndpoints.Blob PS C:\windows\system32> $StorageAccountContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -Endpoint $endpoint PS C:\windows\system32> $StorageAccountSAS = New-AzStorageAccountSASToken -Service Blob -ResourceType Container,Service,Object -Permission "acdlrw" -Context $StorageAccountContext -Protocol HttpsOnly PS C:\windows\system32> C:\azcopy\azcopy_windows_amd64_10.10.0\azcopy.exe cp "$VHDPath\$VHDFile" "$endPoint$ContainerName$StorageAccountSAS" INFO: Scanning... INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support Job 72a5e3dd-9210-3e43-6691-6bebd4875760 has started Log file is located at: C:\Users\alkohli\.azcopy\72a5e3dd-9210-3e43-6691-6bebd4875760.log INFO: azcopy.exe: A newer version 10.11.0 is available to download
Creación de un disco administrado a partir del VHD
Cree un disco administrado desde el VHD cargado.
Configure algunos parámetros.
$DiskName = "<Managed disk name>" $HyperVGeneration = "<Generation of the image: V1 or V2>"
Cree un disco administrado a partir del VHD cargado. Para obtener la dirección URL de origen del disco duro virtual, vaya al contenedor de la cuenta de almacenamiento que contiene el VHD en el Explorador de Storage. Seleccione el VHD, haga clic con el botón derecho y seleccione Propiedades. En el cuadro de diálogo Propiedades del blob, seleccione el Identificador URI.
$StorageAccountId = (Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id $DiskConfig = New-AzDiskConfig -Location DBELocal -HyperVGeneration $HyperVGeneration -StorageAccountId $StorageAccountId -CreateOption Import -SourceUri "Source URL for your VHD" New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $DiskConfig
Este es un ejemplo de salida:
PS C:\WINDOWS\system32> $DiskName = "myazmd" PS C:\WINDOWS\system32 $HyperVGeneration = "V1" PS C:\WINDOWS\system32> $StorageAccountId = (Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id PS C:\WINDOWS\system32> $DiskConfig = New-AzDiskConfig -Location DBELocal -HyperVGeneration $HyperVGeneration -StorageAccountId $StorageAccountId -CreateOption Import -SourceUri "https://myaseazsa.blob.myasegpu.wdshcsso.com/testcontainer1/ubuntu13.vhd" PS C:\WINDOWS\system32> New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $DiskConfig ResourceGroupName : myaseazrg ManagedBy : Sku : Microsoft.Azure.Management.Compute.Models.DiskSku Zones : TimeCreated : 6/24/2021 12:19:56 PM OsType : HyperVGeneration : V1 CreationData : Microsoft.Azure.Management.Compute.Models.CreationDat a DiskSizeGB : 30 DiskSizeBytes : 32212254720 UniqueId : 53743801-cbf2-4d2f-acb4-971d037a9395 EncryptionSettingsCollection : ProvisioningState : Succeeded DiskIOPSReadWrite : 500 DiskMBpsReadWrite : 60 DiskState : Unattached Encryption : Microsoft.Azure.Management.Compute.Models.Encryption Id : /subscriptions/.../r esourceGroups/myaseazrg/providers/Microsoft.Compute/d isks/myazmd Name : myazmd Type : Microsoft.Compute/disks Location : DBELocal Tags : {} PS C:\WINDOWS\system32>
Creación de una imagen de máquina virtual a partir del disco administrado
Ahora, va a crear una imagen de máquina virtual a partir del disco administrado.
Configure algunos parámetros.
$DiskSize = "<Size greater than or equal to size of source managed disk>" $OsType = "<linux or windows>" $ImageName = "<Image name>"
Cree una imagen de máquina virtual. Los tipos de sistema operativo admitidos son Linux y Windows.
$imageConfig = New-AzImageConfig -Location DBELocal -HyperVGeneration $hyperVGeneration $ManagedDiskId = (Get-AzDisk -Name $DiskName -ResourceGroupName $ResourceGroupName).Id Set-AzImageOsDisk -Image $imageConfig -OsType $OsType -OsState 'Generalized' -DiskSizeGB $DiskSize -ManagedDiskId $ManagedDiskId New-AzImage -Image $imageConfig -ImageName $ImageName -ResourceGroupName $ResourceGroupName
Este es un ejemplo de salida.
PS C:\WINDOWS\system32> $OsType = "linux" PS C:\WINDOWS\system32> $ImageName = "myaseazlinuxvmimage" PS C:\WINDOWS\system32> $DiskSize = 35 PS C:\WINDOWS\system32> $imageConfig = New-AzImageConfig -Location DBELocal PS C:\WINDOWS\system32> $ManagedDiskId = (Get-AzDisk -Name $DiskName -ResourceGroupName $ResourceGroupName).Id PS C:\WINDOWS\system32> Set-AzImageOsDisk -Image $imageConfig -OsType $OsType -OsState 'Generalized' -DiskSizeGB $DiskSize -ManagedDiskId $ManagedDiskId ResourceGroupName : SourceVirtualMachine : StorageProfile : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile ProvisioningState : HyperVGeneration : V1 Id : Name : Type : Location : DBELocal Tags : PS C:\WINDOWS\system32> New-AzImage -Image $imageConfig -ImageName $ImageName -ResourceGroupName $ResourceGroupName ResourceGroupName : myaseazrg SourceVirtualMachine : StorageProfile : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile ProvisioningState : Succeeded HyperVGeneration : V1 Id : /subscriptions/.../resourceG roups/myaseazrg/providers/Microsoft.Compute/images/myaseazlin uxvmimage Name : myaseazlinuxvmimage Type : Microsoft.Compute/images Location : dbelocal Tags : {} PS C:\WINDOWS\system32>
Creación de la máquina virtual con los recursos creados anteriormente
Antes de crear e implementar la máquina virtual, debe crear una red virtual y asociarla una interfaz de red virtual.
Importante
Se aplican las reglas siguientes:
- Solo puede crear una red virtual, incluso entre grupos de recursos. La red virtual debe tener exactamente el mismo espacio de direcciones que la red lógica.
- Una red virtual solo puede tener una subred. La subred debe tener exactamente el mismo espacio de direcciones que la red virtual.
- Cuando se crea la tarjeta de interfaz de red virtual, solo se puede usar el método de asignación estática. El usuario debe proporcionar una dirección IP privada.
Consulta a la red virtual creada automáticamente
Cuando se habilita el proceso desde la interfaz de usuario local del dispositivo, se crea automáticamente la red virtual denominada ASEVNET
en el grupo de recursos ASERG
.
Use el siguiente comando para consultar la red virtual existente:
$ArmVn = Get-AzVirtualNetwork -Name ASEVNET -ResourceGroupName ASERG
Creación de una tarjeta de interfaz de red virtual
Cree una tarjeta de interfaz de red virtual mediante el identificador de subred de red virtual.
Configure algunos parámetros.
$IpConfigName = "<IP config name>" $NicName = "<Network interface name>"
Cree una interfaz de red virtual.
$ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id $Nic = New-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location DBELocal -IpConfiguration $IpConfig
De manera predeterminada, se asigna dinámicamente una dirección IP a la interfaz de red desde la red habilitada para proceso. Use el
-PrivateIpAddress parameter
si va a asignar una dirección IP estática a la interfaz de red.Este es un ejemplo de salida:
PS C:\WINDOWS\system32> $IpConfigName = "myazipconfig1" PS C:\WINDOWS\system32> $NicName = "myaznic1" PS C:\WINDOWS\system32> $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id PS C:\WINDOWS\system32> $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id PS C:\WINDOWS\system32> $Nic = New-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location DBELocal -IpConfiguration $IpConfig PS C:\WINDOWS\system32> $Nic Name : myaznic1 ResourceGroupName : myaseazrg Location : dbelocal Id : /subscriptions/.../re sourceGroups/myaseazrg/providers/Microsoft.Network/net workInterfaces/myaznic1 Etag : W/"0b20057b-2102-4f34-958b-656327c0fb1d" ResourceGuid : e7d4131f-6f01-4492-9d4c-a8ff1af7244f ProvisioningState : Succeeded Tags : VirtualMachine : null IpConfigurations : [ { "Name": "myazipconfig1", "Etag": "W/\"0b20057b-2102-4f34-958b-656327c0fb1d\"", "Id": "/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft. Network/networkInterfaces/myaznic1/ipConfigurations/my azipconfig1", "PrivateIpAddress": "10.126.76.60", "PrivateIpAllocationMethod": "Dynamic", "Subnet": { "Delegations": [], "Id": "/subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Ne twork/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet", "ServiceAssociationLinks": [] }, "ProvisioningState": "Succeeded", "PrivateIpAddressVersion": "IPv4", "LoadBalancerBackendAddressPools": [], "LoadBalancerInboundNatRules": [], "Primary": true, "ApplicationGatewayBackendAddressPools": [], "ApplicationSecurityGroups": [] } ] DnsSettings : { "DnsServers": [], "AppliedDnsServers": [], "InternalDomainNameSuffix": "auwlfcx0dhxurjgisct43fc ywb.a--x.internal.cloudapp.net" } EnableIPForwarding : False EnableAcceleratedNetworking : False NetworkSecurityGroup : null Primary : MacAddress : 001DD84A58D1 PS C:\WINDOWS\system32>
Opcionalmente, al crear una tarjeta de interfaz de red virtual para una máquina virtual, puede pasar la dirección IP pública. En este caso, la dirección IP pública devuelve la dirección IP privada.
New-AzPublicIPAddress -Name <Public IP> -ResourceGroupName <ResourceGroupName> -AllocationMethod Static -Location DBELocal
$publicIP = (Get-AzPublicIPAddress -Name <Public IP> -ResourceGroupName <Resource group name>).Id
$ipConfig = New-AzNetworkInterfaceIpConfig -Name <ConfigName> -PublicIpAddressId $publicIP -SubnetId $subNetId
Creación de una máquina virtual
Ahora puede usar la imagen de la VM para crear una VM y conectarla a la red virtual que creó anteriormente.
Establezca el nombre de usuario y la contraseña para iniciar sesión en la máquina virtual que desea crear.
$pass = ConvertTo-SecureString "<Password>" -AsPlainText -Force; $cred = New-Object System.Management.Automation.PSCredential("<Enter username>", $pass)
Después de crear y encender la máquina virtual, use el nombre de usuario y la contraseña anteriores para iniciar sesión en ella.
Establezca los parámetros.
$VmName = "<VM name>" $ComputerName = "<VM display name>" $OsDiskName = "<OS disk name>"
Cree la máquina virtual.
$VirtualMachine = New-AzVMConfig -VmName $VmName -VMSize "Standard_D1_v2" $VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $ComputerName -Credential $cred $VirtualMachine = Set-AzVmOsDisk -VM $VirtualMachine -Name $OsDiskName -Caching "ReadWrite" -CreateOption "FromImage" -Linux -StorageAccountType Standard_LRS $nicID = (Get-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName).Id $VirtualMachine = Add-AzVMNetworkInterface -Vm $VirtualMachine -Id $nicID $image = ( Get-AzImage -ResourceGroupName $ResourceGroupName -ImageName $ImageName).Id $VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -Id $image New-AzVM -ResourceGroupName $ResourceGroupName -Location DBELocal -VM $VirtualMachine -Verbose
Este es un ejemplo de salida.
PS C:\WINDOWS\system32> $pass = ConvertTo-SecureString "Password1" -AsPlainText -Force; PS C:\WINDOWS\system32> $cred = New-Object System.Management.Automation.PSCredential("myazuser", $pass) PS C:\WINDOWS\system32> $VmName = "myazvm" >> $ComputerName = "myazvmfriendlyname" >> $OsDiskName = "myazosdisk1" PS C:\WINDOWS\system32> $VirtualMachine = New-AzVMConfig -VmName $VmName -VMSize "Standard_D1_v2" PS C:\WINDOWS\system32> $VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $ComputerName -Credential $cred PS C:\WINDOWS\system32> $VirtualMachine = Set-AzVmOsDisk -VM $VirtualMachine -Name $OsDiskName -Caching "ReadWrite" -CreateOption "FromImage" -Linux -StorageAccountType Standard_LRS PS C:\WINDOWS\system32> $nicID = (Get-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName).Id PS C:\WINDOWS\system32> $nicID/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.Network/networkInterfaces/myaznic1 PS C:\WINDOWS\system32> $VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $nicID PS C:\WINDOWS\system32> $image = ( Get-AzImage -ResourceGroupName $ResourceGroupName -ImageName $ImageName).Id PS C:\WINDOWS\system32> $VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -Id $image PS C:\WINDOWS\system32> New-AzVM -ResourceGroupName $ResourceGroupName -Location DBELocal -VM $VirtualMachine -Verbose WARNING: Since the VM is created using premium storage or managed disk, existing standard storage account, myaseazsa, is used for boot diagnostics. VERBOSE: Performing the operation "New" on target "myazvm". RequestId IsSuccessStatusCode StatusCode ReasonPhrase --------- ------------------- ---------- ------------ True OK OK
Para averiguar la dirección IP asignada a la máquina virtual que ha creado, consulte la interfaz de red virtual que ha creado. Busque el elemento
PrivateIPAddress
y copie la dirección IP de la máquina virtual. Este es un ejemplo de salida.PS C:\WINDOWS\system32> $Nic Name : myaznic1 ResourceGroupName : myaseazrg Location : dbelocal Id : /subscriptions/.../re sourceGroups/myaseazrg/providers/Microsoft.Network/net workInterfaces/myaznic1 Etag : W/"0b20057b-2102-4f34-958b-656327c0fb1d" ResourceGuid : e7d4131f-6f01-4492-9d4c-a8ff1af7244f ProvisioningState : Succeeded Tags : VirtualMachine : null IpConfigurations : [ { "Name": "myazipconfig1", "Etag": "W/\"0b20057b-2102-4f34-958b-656327c0fb1d\"", "Id": "/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft. Network/networkInterfaces/myaznic1/ipConfigurations/my azipconfig1", "PrivateIpAddress": "10.126.76.60", "PrivateIpAllocationMethod": "Dynamic", "Subnet": { "Delegations": [], "Id": "/subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Ne twork/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet", "ServiceAssociationLinks": [] }, "ProvisioningState": "Succeeded", "PrivateIpAddressVersion": "IPv4", "LoadBalancerBackendAddressPools": [], "LoadBalancerInboundNatRules": [], "Primary": true, "ApplicationGatewayBackendAddressPools": [], "ApplicationSecurityGroups": [] } ] DnsSettings : { "DnsServers": [], "AppliedDnsServers": [], "InternalDomainNameSuffix": "auwlfcx0dhxurjgisct43fc ywb.a--x.internal.cloudapp.net" } EnableIPForwarding : False EnableAcceleratedNetworking : False NetworkSecurityGroup : null Primary : MacAddress : 001DD84A58D1 PS C:\WINDOWS\system32>
Conexión a la máquina virtual
Las instrucciones para conectarse pueden ser diferentes en función de si se ha creado una máquina virtual Windows o Linux.
Conexión a una máquina virtual Linux
Para conectarse a una máquina virtual Linux, realice lo siguiente:
Conéctese a la máquina virtual mediante la dirección IP privada que pasó durante la creación de la máquina virtual.
Abra una sesión de SSH para conectarse con la dirección IP.
ssh -l <username> <ip address>
En el símbolo del sistema, escriba la contraseña que usó al crear la máquina virtual.
Si tiene que proporcionar la clave SSH, use este comando.
ssh -i c:/users/Administrator/.ssh/id_rsa Administrator@5.5.41.236
A continuación se muestra un ejemplo de salida cuando se conecta a la máquina virtual:
PS C:\WINDOWS\system32> ssh -l myazuser "10.126.76.60" The authenticity of host '10.126.76.60 (10.126.76.60)' can't be established. ECDSA key fingerprint is SHA256:V649Zbo58zAYMKreeP7M6w7Na0Yf9QPg4SM7JZVV0E4. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '10.126.76.60' (ECDSA) to the list of known hosts. myazuser@10.126.76.60's password: Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.18.0-1013-azure x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information disabled due to load higher than 1.0 Get cloud support with Ubuntu Advantage Cloud Guest: http://www.ubuntu.com/business/services/cloud 284 packages can be updated. 192 updates are security updates. The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. myazuser@myazvmfriendlyname:~$ client_loop: send disconnect: Connection reset PS C:\WINDOWS\system32>
Si usó una dirección IP pública durante la creación de la máquina virtual, puede usar esa IP para conectarse a la máquina virtual. Para obtener la dirección IP pública, ejecute el siguiente comando:
$publicIp = Get-AzPublicIpAddress -Name $PublicIp -ResourceGroupName $ResourceGroupName
En este caso, la dirección IP pública será la misma que la dirección IP privada que pasó durante la creación de la interfaz de red virtual.
Conexión a una máquina virtual Windows
Para conectarse a una máquina virtual Windows, realice lo siguiente:
Conéctese a la máquina virtual Windows mediante el Protocolo de escritorio remoto (RDP) a través de la dirección IP que pasó durante la creación de la máquina virtual.
En su cliente, abra RDP.
Vaya a Inicio y escriba mstsc.
En el panel Conexión a Escritorio remoto, escriba la dirección IP de la máquina virtual y las credenciales de acceso que usó en el archivo de parámetros de la plantilla de máquina virtual. A continuación, seleccione Conectar.
Nota:
Es posible que tenga que aprobar la conexión a una máquina que no sea de confianza.
Ahora ha iniciado sesión en la máquina virtual que se ejecuta en el dispositivo.
Administración de la VM
En las siguientes secciones se describen algunas de las operaciones comunes que puede crear en el dispositivo Azure Stack Edge Pro.
Enumeración de las máquinas virtuales que se ejecutan en el dispositivo
Para devolver una lista de todas las máquinas virtuales que se ejecutan en el dispositivo Azure Stack Edge, ejecute este comando:
Get-AzVM -ResourceGroupName <String> -Name <String>
Para más información sobre este cmdlet, consulte Get-AzVM.
Activación de la VM
Ejecute el siguiente cmdlet para activar una máquina virtual que se ejecute en el dispositivo:
Start-AzVM [-Name] <String> [-ResourceGroupName] <String>
Para más información sobre este cmdlet, consulte Start-AzVM.
Suspensión o apagado de la VM
Ejecute el siguiente cmdlet para detener o apagar una máquina virtual que se ejecute en el dispositivo:
Stop-AzVM [-Name] <String> [-StayProvisioned] [-ResourceGroupName] <String>
Para más información sobre este cmdlet, consulte el cmdlet Stop-AzVM.
Cambio de tamaño de la máquina virtual
Para cambiar el tamaño de una máquina virtual existente, ejecute los siguientes cmdlets:
Importante
Antes de cambiar su tamaño, detenga la máquina virtual sin la marca -StayProvisioned
.
$vm = Get-AzVM [-Name] <String> [-ResourceGroupName] <String>
$vm.HardwareProfile.VmSize = <new size> - Example: "Standard_D3_v2"
$vm | Update-AzVM
Agregar un disco de datos
Si aumentan los requisitos de la carga de trabajo en la máquina virtual, es posible que tenga que agregar un disco de datos. Para ello, ejecute el comando siguiente:
Add-AzRmVMDataDisk -VM $VirtualMachine -Name "disk1" -VhdUri "https://contoso.blob.core.windows.net/vhds/diskstandard03.vhd" -LUN 0 -Caching ReadOnly -DiskSizeinGB 1 -CreateOption Empty
Update-AzVM -ResourceGroupName "<Resource Group Name string>" -VM $VirtualMachine
Eliminación de la máquina virtual
Ejecute el siguiente cmdlet para quitar una máquina virtual del dispositivo:
Remove-AzVM [-Name] <String> [-ResourceGroupName] <String>
Para más información sobre este cmdlet, consulte el cmdlet Remove-AzVm.