透過 Azure PowerShell 在 Azure Stack Edge 裝置上部署 VM
適用於:Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
本文說明如何使用 Azure PowerShell,在 Azure Stack Edge 裝置上建立和管理虛擬機器 (VM)。
VM 部署工作流程
VM 部署的高階部署工作流程如下所示:
- 連線到裝置上的 Azure Resource Manager。
- 識別裝置上的內建訂用帳戶。
- 攜帶 VM 映像。
- 在內建的訂閱中建立資源群組。 資源群組將包含 VM 和所有相關資源。
- 在裝置上建立本機儲存體帳戶,以儲存將用來建立 VM 映像的 VHD。
- 將 Windows/Linux 來源映像上傳至儲存體帳戶,以建立受控磁碟。
- 使用受控磁碟來建立 VM 映像。
- 在裝置連接埠上啟用計算,以建立虛擬交換器。
- 這會使用連結至您啟用計算之連接埠的虛擬交換器來建立虛擬網路。
- 使用先前建立的 VM 映像、虛擬網路和虛擬網路介面建立 VM,以在虛擬網路內通訊,並將公用 IP 位址指派給遠端存取 VM。 選擇性地包含資料磁碟,為您的 VM 提供更多儲存體。
必要條件
可在 Azure Stack Edge 裝置上部署 VM 之前,您必須透過 Azure PowerShell 將用戶端設定為透過 Azure Resource Manager 連線到裝置。 如需詳細指示,請參閱連線到 Azure Stack Edge 裝置上的 Azure Resource Manager。
請確定您可以使用下列步驟以從用戶端存取裝置。 當您已連線至 Azure Resource Manager 時,表示已完成此設定,現在您要確認設定成功。
執行下列命令,以確認 Azure Resource Manager 通訊是否正常運作:
若要呼叫本機裝置 API 以進行驗證,請輸入:
如果您已設定 Kubernetes 的計算,則可以略過此步驟。 否則,請執行下列動作,以確定您已啟用用於計算的網路介面:
a. 在本機使用者介面上,移至 [計算設定]。
b. 選取您想要用來建立虛擬交換器的網路介面。 您建立的 VM 將會連結虛擬交換器,而此虛擬交換器已連結至此連接埠和相關聯的網路。 請務必選擇符合您將用於 VM 之 IP 位址的網路。c. 在網路介面的 [啟用計算] 下,選取 [是]。 Azure Stack Edge 將會建立和管理對應至該網路介面的虛擬交換器。 目前請不要輸入 Kubernetes 的特定 IP。 啟用計算可能需要幾分鐘的時間。
注意
如果您要建立 GPU VM,則請選取連線至網際網路的網路介面。 這麼做可讓您在裝置上安裝 GPU 延伸模組。
查詢裝置上的內建訂用帳戶
針對 Azure Resource Manager,僅支援使用者可見的單一固定訂用帳戶。 此訂用帳戶是每個裝置的唯一訂用帳戶,而且無法變更訂用帳戶名稱和訂用帳戶識別碼。
訂用帳戶包含建立 VM 所需的所有資源。
重要
當您從 Azure 入口網站啟用 VM 時,就會建立訂用帳戶,且該訂用帳戶位於您的裝置本機。
訂用帳戶是用來部署 VM。
若要列出訂用帳戶,請執行下列命令:
Get-AzSubscription
以下是一些範例輸出:
PS C:\WINDOWS\system32> Get-AzSubscription Name Id TenantId ---- -- -------- Default Provider Subscription ... ... PS C:\WINDOWS\system32>
取得在裝置上執行的已註冊資源提供者清單。 此清單通常包含計算、網路和儲存體。
Get-AzResourceProvider
注意
系統會預先註冊資源提供者,而且無法修改或變更。
以下是一些範例輸出:
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>
建立資源群組
首先,建立新的 Azure 資源群組,並將其作為所有 VM 相關資源的邏輯容器,例如儲存體帳戶、磁碟、網路介面和受控磁碟。
重要
所有資源都會建立在裝置所在的相同位置,並將位置設定為 DBELocal。
設定部分參數。
$ResourceGroupName = "<Resource group name>"
針對您要為 VM 建立的資源建立資源群組。
New-AzResourceGroup -Name $ResourceGroupName -Location DBELocal
以下是一些範例輸出:
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>
建立本機儲存體帳戶
使用現有的資源群組建立新的本機儲存體帳戶。 使用此本機儲存體帳戶在建立 VM 時上傳虛擬磁碟映像。
建立本機儲存體帳戶之前,您必須將用戶端設定為透過 Azure PowerShell 經由 Azure Resource Manager 連線到裝置。 如需詳細指示,請參閱連線到 Azure Stack Edge 裝置上的 Azure Resource Manager。
設定部分參數。
$StorageAccountName = "<Storage account name>"
在您的裝置上建立新的本機儲存體帳戶。
New-AzStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourceGroupName -Location DBELocal -SkuName Standard_LRS
注意
使用 Azure Resource Manager,您只能建立本機儲存體帳戶,例如本地備援儲存體 (標準或進階)。 若要建立階層式儲存體帳戶,請參閱教學課程:使用 Azure Stack Edge Pro with GPU 透過儲存體帳戶傳輸資料。
以下為範例輸出:
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>
若要取得您已建立的現有本機儲存體帳戶的存取金鑰,請提供相關聯的資源群組名稱和本機儲存體帳戶名稱。
Get-AzStorageAccountKey
以下為範例輸出:
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>
將 Blob URI 新增至主機檔案
在連線到您 Azure Stack Edge 裝置上的 Azure Resource Manager 的針對端點名稱解析修改主機檔案中,您已為用於連線到 Azure Blob 儲存體的用戶端新增了 Blob URI。 此項目用來新增 Blob URI:
<Device IP address>
<storage name>.blob.<appliance name>.<dnsdomain>
安裝憑證
如果您使用 HTTPS,則必須在裝置上安裝適當的憑證。 在此請安裝 Blob 端點憑證。 如需詳細資訊,請參閱搭配您的 Azure Stack Edge Pro 搭配 GPU 裝置使用憑證。
上傳 VHD
將任何要使用的磁碟映像複製至本機儲存體帳戶 (已在稍早建立) 中的分頁 Blob。 您可以使用 AzCopy 之類的工具,將虛擬硬碟 (VHD) 上傳至儲存體帳戶。
搭配 AzCopy 10 使用下列命令:
設定一些參數,包括適用於 AzCopy 的適當 API 版本。 在此範例中,使用了 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>
將 VHD 從來源 (在此案例中是本機系統) 複製到您在裝置上建立的儲存體帳戶。
$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"
以下為範例輸出:
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
從 VHD 建立受控磁碟
從上傳的 VHD 建立受控磁碟。
設定部分參數。
$DiskName = "<Managed disk name>" $HyperVGeneration = "<Generation of the image: V1 or V2>"
從上傳的 VHD 建立受控磁碟。 若要取得 VHD 的來源 URL,請移至儲存體帳戶中的容器,其中包含儲存體總管中的 VHD。 選取 VHD,然後按一下滑鼠右鍵,然後選取 [屬性]。 在 [Blob 屬性] 對話方塊中,選取 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
以下為範例輸出:
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>
從受控磁碟建立 VM 映像
您現在已從受控磁碟建立 VM 映像。
設定部分參數。
$DiskSize = "<Size greater than or equal to size of source managed disk>" $OsType = "<linux or windows>" $ImageName = "<Image name>"
建立 VM 映像。 支援的 OS 類型為 Linux 和 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
以下為範例輸出。
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>
使用先前建立的資源建立 VM
建立和部署 VM 之前,您必須建立一個虛擬網路,並將虛擬網路介面與其建立關聯。
重要
適用的規則如下:
- 您只能建立一個虛擬網路,甚至是跨資源群組。 虛擬網路必須與邏輯網路完全相同的位址空間。
- 每個虛擬網路只能擁有一個子網路。 子網路必須與虛擬網路具有相同的位址空間。
- 當您建立虛擬網路介面卡時,只能使用靜態配置方法。 使用者必須提供私人 IP 位址。
查詢自動建立的虛擬網路
當您從裝置的本機 UI 啟用計算時,系統會在 ASERG
資源群組下自動建立名為 ASEVNET
的虛擬網路。
建立虛擬網路介面卡
您使用虛擬網路子網識別碼來建立虛擬網路介面卡。
設定部分參數。
$IpConfigName = "<IP config name>" $NicName = "<Network interface name>"
建立虛擬網路介面。
$ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id $Nic = New-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location DBELocal -IpConfiguration $IpConfig
依預設,IP 會從已啟用計算的網路動態指派給您的網路介面。 如果您要將靜態 IP 配置至網路介面,請使用
-PrivateIpAddress parameter
。以下為範例輸出:
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>
或者,當您為 VM 建立虛擬網路卡時,您可以傳遞公用 IP。 在此實例中,公用 IP 會傳回私人 IP。
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
建立 VM
您現在可以使用 VM 映像來建立 VM,並將其連結至您稍早建立的虛擬網路。
將使用者名稱和密碼設定為登入您想要建立的 VM。
$pass = ConvertTo-SecureString "<Password>" -AsPlainText -Force; $cred = New-Object System.Management.Automation.PSCredential("<Enter username>", $pass)
建立並啟動 VM 之後,請使用上述使用者名稱和密碼來登入 VM。
設定參數。
$VmName = "<VM name>" $ComputerName = "<VM display name>" $OsDiskName = "<OS disk name>"
建立 VM。
$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
以下為範例輸出。
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
若要找出指派給您所建立 VM 的 IP,請查詢您所建立的虛擬網路介面。 找出
PrivateIPAddress
並複製 VM 的 IP。 以下為範例輸出。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>
連線至 VM
視您建立 Windows VM 或 Linux VM 而定,連線指示可能不同。
連線至 Linux VM (英文)
若要連線至 Linux VM,請執行下列動作:
使用您在建立 VM 時所傳遞的私人 IP 來連線到 VM。
開啟 SSH 工作階段,以使用 IP 位址進行連線。
ssh -l <username> <ip address>
在提示出現時,提供您在建立 VM 時所使用的密碼。
如果您需要提供 SSH 金鑰,則請使用此命令。
ssh -i c:/users/Administrator/.ssh/id_rsa Administrator@5.5.41.236
以下是您連線至 VM 時的範例輸出:
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>
如果您在建立 VM 期間使用了公用 IP 位址,您可以使用該 IP 來連線到 VM。 若要取得公用 IP,請執行下列命令:
$publicIp = Get-AzPublicIpAddress -Name $PublicIp -ResourceGroupName $ResourceGroupName
在此執行個體中,公用 IP 與您在建立虛擬網路介面期間傳遞的私人 IP 相同。
連線至 Windows VM
若要連線到 Windows VM,請執行下列動作:
使用遠端桌面通訊協定 (RDP),透過您在 VM 建立期間所傳遞的 IP 連線至您的 Windows VM。
在您的用戶端上,開啟 RDP。
移至 [開始],然後輸入 mstsc。
在 [遠端桌面連線] 窗格上,輸入 VM 的 IP 位址,以及您在 VM 範本參數檔案中所使用的存取認證。 然後選取 [連線]。
注意
您可能需要核准連線至不受信任的機器。
您現在已登入設備上所執行的 VM。
管理 VM
下列各節說明您可以在 Azure Stack Edge Pro 裝置上建立的一些常見作業。
列出在裝置上執行的 VM
若要傳回在 Azure Stack Edge 裝置上執行的所有 VM 清單,請執行此命令:
開啟 VM
若要開啟在您的裝置上執行的虛擬機器,請執行下列 Cmdlet:
Start-AzVM [-Name] <String> [-ResourceGroupName] <String>
如需關於此 Cmdlet 的詳細資訊,請參閱 Start-AzVM。
暫停或關閉 VM
若要停止或關閉在您裝置上執行的虛擬機器,請執行下列 Cmdlet:
Stop-AzVM [-Name] <String> [-StayProvisioned] [-ResourceGroupName] <String>
如需關於此 Cmdlet 的詳細資訊,請參閱 Stop-AzVM Cmdlet。
調整 VM 的大小
若要調整現有虛擬機的大小,請執行下列 Cmdlet:
重要
在調整其大小之前,請先停止 VM, -StayProvisioned
而不使用 旗標。
$vm = Get-AzVM [-Name] <String> [-ResourceGroupName] <String>
$vm.HardwareProfile.VmSize = <new size> - Example: "Standard_D3_v2"
$vm | Update-AzVM
新增資料磁碟
如果 VM 上的工作負載需求增加,您可能需要新增資料磁碟。 若要這樣做,請執行下列命令:
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
刪除 VM
若要從您的裝置移除虛擬機器,請執行下列 Cmdlet:
Remove-AzVM [-Name] <String> [-ResourceGroupName] <String>
如需關於此 Cmdlet 的詳細資訊,請參閱 Remove-AzVm cmdlet。