你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
通过 Azure PowerShell 在 Azure Stack Edge Pro GPU 设备上从专用映像部署 VM
适用范围:Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
本文介绍从专用映像在 Azure Stack Edge Pro GPU 设备上部署虚拟机 (VM) 所需的步骤。
若要准备通用映像以在 Azure Stack Edge Pro GPU 中部署 VM,请参阅从 Windows VHD 准备通用映像或从 ISO 准备通用映像。
关于 VM 映像
可以使用 Windows VHD 或 VHDX 创建专用映像或通用映像。 下表汇总了专用映像与通用映像之间的主要差异。
映像类型 | 通用 | 专用 |
---|---|---|
目标 | 在任何系统上部署。 | 面向特定系统。 |
启动后设置 | 需要在首次启动 VM 时设置。 | 无需安装。 平台打开 VM。 |
配置 | 需要主机名、管理员用户和其他特定于 VM 的设置。 | 预配置。 |
使用时间 | 从同一个映像创建多个新 VM。 | 迁移特定的计算机,或从以前的备份还原 VM。 |
Workflow
从专用映像部署 VM 的概要工作流是:
- 将 VHD 复制到 Azure Stack Edge Pro GPU 设备上的本地存储帐户。
- 从 VHD 创建新的托管磁盘。
- 从托管磁盘创建新的虚拟机,并附加托管磁盘。
先决条件
在通过 PowerShell 在设备上部署 VM 之前,请确保:
- 你可以访问要用于连接到设备的客户端。
- 客户端运行的是受支持的 OS。
- 按照连接到设备的 Azure 资源管理器中的说明,将客户端配置为连接到设备的本地 Azure 资源管理器。
验证本地 Azure 资源管理器连接
验证客户端是否可以连接到本地 Azure 资源管理器。
调用本地设备 API 进行身份验证:
Login-AzureRMAccount -EnvironmentName <Environment Name>
提供用户名
EdgeArmUser
和密码以通过 Azure 资源管理器进行连接。 如果你忘记了密码,请重置 Azure 资源管理器的密码,然后使用此密码登录。
从专用映像部署 VM
以下部分包含从专用映像部署 VM 的分步说明。
将 VHD 复制到设备上的本地存储帐户
按照以下步骤将 VHD 复制到本地存储帐户:
将源 VHD 复制到 Azure Stack Edge 上的本地 Blob 存储帐户。
记下生成的 URI。 后续步骤需要使用此 URI。
若要创建和访问本地存储帐户,请参阅通过 Azure PowerShell 在 Azure Stack Edge 设备上部署 VM 一文中的创建存储帐户到上传 VHD 的每个部分。
从 VHD 创建托管磁盘
按照以下步骤,从之前已上传到存储帐户的 VHD 创建一个托管磁盘:
设置一些参数。
$VhdURI = <URI of VHD in local storage account> $DiskRG = <managed disk resource group> $DiskName = <managed disk name>
下面是示例输出。
PS C:\WINDOWS\system32> $VHDURI = "https://myasevmsa.blob.myasegpudev.wdshcsso.com/vhds/WindowsServer2016Datacenter.vhd" PS C:\WINDOWS\system32> $DiskRG = "myasevm1rg" PS C:\WINDOWS\system32> $DiskName = "myasemd1"
创建新的托管磁盘。
$StorageAccountId = (Get-AzureRmStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id $DiskConfig = New-AzureRmDiskConfig -Location DBELocal -StorageAccountId $StorageAccountId -CreateOption Import -SourceUri "Source URL for your VHD"
下面是示例输出。 此处的位置设置为本地存储帐户的位置,对于 Azure Stack Edge Pro GPU 设备上的所有本地存储帐户,该位置始终是
DBELocal
。PS C:\WINDOWS\system32> $DiskConfig = New-AzureRmDiskConfig -Location DBELocal -CreateOption Import -SourceUri $VHDURI PS C:\WINDOWS\system32> $disk = New-AzureRMDisk -ResourceGroupName $DiskRG -DiskName $DiskName -Disk $DiskConfig PS C:\WINDOWS\system32>
从托管磁盘创建 VM
按照以下步骤从托管磁盘创建 VM:
设置一些参数。
$NicRG = <NIC resource group> $NicName = <NIC name> $IPConfigName = <IP config name> $PrivateIP = <IP address> #Optional $VMRG = <VM resource group> $VMName = <VM name> $VMSize = <VM size>
注意
PrivateIP
参数是可选的。 使用此参数分配静态 IP,否则默认设置是使用 DHCP 的动态 IP。下面是示例输出。 在此示例中,为所有 VM 资源指定了同一个资源组,不过,如果需要,你可以为资源创建并指定单独的资源组。
PS C:\WINDOWS\system32> $NicRG = "myasevm1rg" PS C:\WINDOWS\system32> $NicName = "myasevmnic1" PS C:\WINDOWS\system32> $IPConfigName = "myaseipconfig1" PS C:\WINDOWS\system32> $VMRG = "myasevm1rg" PS C:\WINDOWS\system32> $VMName = "myasetestvm1" PS C:\WINDOWS\system32> $VMSize = "Standard_D1_v2"
获取虚拟网络信息并创建新的网络接口。
此示例假设你要在与默认资源组“
ASERG
”关联的默认虚拟网络“ASEVNET
”上创建单个网络接口。 如果需要,可以指定备用虚拟网络,或创建多个网络接口。 有关详细信息,请参阅通过 Azure 门户将网络接口添加到 VM。$armVN = Get-AzureRMVirtualNetwork -Name ASEVNET -ResourceGroupName ASERG $ipConfig = New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName -SubnetId $armVN.Subnets[0].Id [-PrivateIpAddress $PrivateIP] $nic = New-AzureRmNetworkInterface -Name $NicName -ResourceGroupName $NicRG -Location DBELocal -IpConfiguration $ipConfig
下面是示例输出。
PS C:\WINDOWS\system32> $armVN = Get-AzureRMVirtualNetwork -Name ASEVNET -ResourceGroupName ASERG PS C:\WINDOWS\system32> $ipConfig = New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName -SubnetId $armVN.Subnets[0].Id PS C:\WINDOWS\system32> $nic = New-AzureRmNetworkInterface -Name $NicName -ResourceGroupName $NicRG -Location DBELocal -IpConfiguration $ipConfig WARNING: The output object type of this cmdlet will be modified in a future release. PS C:\WINDOWS\system32>
创建新的 VM 配置对象。
$vmConfig = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize
向 VM 添加网络接口。
$vm = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $nic.Id
在 VM 上设置 OS 磁盘属性。
$vm = Set-AzureRmVMOSDisk -VM $vm -ManagedDiskId $disk.Id -StorageAccountType StandardLRS -CreateOption Attach –[Windows/Linux]
此命令中的最后一个标志将是“
-Windows
”或“-Linux
”,具体取决于要为 VM 使用的 OS。创建 VM。
New-AzureRmVM -ResourceGroupName $VMRG -Location DBELocal -VM $vm
下面是示例输出。
PS C:\WINDOWS\system32> $vmConfig = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize PS C:\WINDOWS\system32> $vm = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $nic.Id PS C:\WINDOWS\system32> $vm = Set-AzureRmVMOSDisk -VM $vm -ManagedDiskId $disk.Id -StorageAccountType StandardLRS -CreateOption Attach -Windows PS C:\WINDOWS\system32> New-AzureRmVM -ResourceGroupName $VMRG -Location DBELocal -VM $vm WARNING: Since the VM is created using premium storage or managed disk, existing standard storage account, myasevmsa, is used for boot diagnostics. RequestId IsSuccessStatusCode StatusCode ReasonPhrase --------- ------------------- ---------- ------------ True OK OK PS C:\WINDOWS\system32>
删除 VM 和资源
本文仅使用了一个资源组来创建所有 VM 资源。 删除该资源组会删除 VM 和所有关联的资源。
首先,查看在该资源组下创建的所有资源。
Get-AzureRmResource -ResourceGroupName <Resource group name>
下面是示例输出。
PS C:\WINDOWS\system32> Get-AzureRmResource -ResourceGroupName myasevm1rg Name : myasemd1 ResourceGroupName : myasevm1rg ResourceType : Microsoft.Compute/disks Location : dbelocal ResourceId : /subscriptions/992601bc-b03d-4d72-598e-d24eac232122/resourceGroups/myasevm1rg/providers/Microsoft.Compute/disk s/myasemd1 Name : myasetestvm1 ResourceGroupName : myasevm1rg ResourceType : Microsoft.Compute/virtualMachines Location : dbelocal ResourceId : /subscriptions/992601bc-b03d-4d72-598e-d24eac232122/resourceGroups/myasevm1rg/providers/Microsoft.Compute/virt ualMachines/myasetestvm1 Name : myasevmnic1 ResourceGroupName : myasevm1rg ResourceType : Microsoft.Network/networkInterfaces Location : dbelocal ResourceId : /subscriptions/992601bc-b03d-4d72-598e-d24eac232122/resourceGroups/myasevm1rg/providers/Microsoft.Network/netw orkInterfaces/myasevmnic1 Name : myasevmsa ResourceGroupName : myasevm1rg ResourceType : Microsoft.Storage/storageaccounts Location : dbelocal ResourceId : /subscriptions/992601bc-b03d-4d72-598e-d24eac232122/resourceGroups/myasevm1rg/providers/Microsoft.Storage/stor ageaccounts/myasevmsa PS C:\WINDOWS\system32>
删除该资源组和所有关联的资源。
Remove-AzureRmResourceGroup -ResourceGroupName <Resource group name>
下面是示例输出。
PS C:\WINDOWS\system32> Remove-AzureRmResourceGroup -ResourceGroupName myasevm1rg Confirm Are you sure you want to remove resource group 'myasevm1rg' [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y True PS C:\WINDOWS\system32>
验证是否已删除该资源组。 获取设备上存在的所有资源组。
Get-AzureRmResourceGroup
下面是示例输出。
PS C:\WINDOWS\system32> Get-AzureRmResourceGroup ResourceGroupName : ase-image-resourcegroup Location : dbelocal ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/992601bc-b03d-4d72-598e-d24eac232122/resourceGroups/ase-image-resourcegroup ResourceGroupName : ASERG Location : dbelocal ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/992601bc-b03d-4d72-598e-d24eac232122/resourceGroups/ASERG ResourceGroupName : myaserg Location : dbelocal ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/992601bc-b03d-4d72-598e-d24eac232122/resourceGroups/myaserg PS C:\WINDOWS\system32>