教學課程:為 Azure Stack HCI 建立 VM 型實驗室

適用於:Azure Stack HCI 21H2 版

在本教學課程中,您會使用 MSLab PowerShell 指令碼來自動化建立私人樹系的程序,以使用巢狀虛擬化在虛擬機器 (VM) 上執行 Azure Stack HCI。

重要

由於 Azure Stack HCI 的目的是作為可執行 VM 中所有工作負載的虛擬主機,因此巢狀虛擬化不適用於實際執行環境。 巢狀虛擬化僅適用於測試與評估用途。

您將學習如何:

  • 使用網域控制站和 Windows Admin Center 伺服器建立私人樹系
  • 部署多個執行 Azure Stack HCI 的 VM 以建立叢集

完成之後,您將能夠使用您已部署的 VM 來建立 Azure Stack HCI 叢集,並使用私人實驗室進行原型設計、測試、疑難排解或評估。

必要條件

若要完成本教學課程,您需要:

  • 執行 Windows server 2022、Windows server 2019 或 Windows Server 2016 的 Hyper-V 主機伺服器上的管理員權限
  • 至少有 8 GB 的 RAM
  • 具有巢狀虛擬化支援的 CPU
  • 固態硬碟 (SSD)
  • Hyper-V 主機伺服器上有 40 GB 的可用空間
  • 用於註冊 Windows Admin Center 和您叢集的 Azure 帳戶

準備實驗室

請依照這些指示,謹慎地準備實驗室環境。

連線至虛擬主機

連線到您將在其中建立 VM 型實驗室的實體伺服器。 如果您使用的是遠端伺服器,請透過遠端桌面連線。

下載 Azure Stack HCI

在伺服器上啟動網頁瀏覽器,然後造訪 Azure Stack HCI 產品頁面。 選取 [註冊免費試用],並填寫簡短的註冊表單。 選取表示您同意授權和隱私權條款的方塊,然後選取 [提交]。

選取 [下載 Azure Stack HCI],以觸發 ISO 下載。

下載 Windows Server

您也需要 Windows Server 2022、Windows Server 2019 或 Windows Server 2016 複本來用於網域控制站和 Windows Admin Center VM。 您可以使用評估媒體,或如果您可以存取 VL 或 Visual Studio 訂閱,您可以使用這些項目。 在本教學課程中,我們將下載評估版

為實驗室檔案建立資料夾

在 C 磁碟機 (或您偏好的任何磁碟機) 的根目錄上建立 資料夾,並使用檔案總管將您下載的 OS 檔案複製到 C:\Lab\Isos 資料夾。

下載 MSLab 指令碼

在您的伺服器上使用網頁瀏覽器:下載 MSLab 指令碼。 ZIP 檔案 wslab_vxx.xx.x.zip 應該會自動下載到您的硬碟。 將 ZIP 檔案複製到硬碟位置 (C:\Lab) 並將指令碼解壓縮。

編輯 LabConfig 指令碼

MSLab VM 會在 LabConfig.ps1 PowerShell 指令碼中定義為簡單雜湊表。 您將需要自訂指令碼,以透過 Azure Stack HCI VM 建立私人樹系。

若要編輯指令碼,請使用檔案總管瀏覽至 C:\Lab\wslab_xxx\,然後以滑鼠右鍵按一下 LabConfig.ps1。 選取 [編輯],這將會使用 Windows PowerShell ISE 來開啟檔案。

提示

LabConfig.ps1 的原始版本儲存為 Original_LabConfig.ps1,以便您在必要時重新開始。

請注意,大部分的指令碼都已註解化;您只需要執行幾行程式碼即可。 遵循下列步驟來自訂指令碼,讓其產生所需的輸出。 或者,您可以直接複製本節結尾的程式碼區塊,並在 LabConfig 中取代適當的行。

若要自訂指令碼:

  1. 將下列內容新增至 LabConfig.ps1 中第一個取消註解的行,以告訴指令碼要在哪裡尋找 ISO、啟用客體服務介面,以及啟用主機上的 DNS 轉送:ServerISOFolder="C:\lab\isos" ; EnableGuestServiceInterface=$true ; UseHostDnsAsForwarder=$true

  2. 視需要變更管理員名稱和密碼。

  3. 如果您打算在相同的伺服器上建立多個實驗室,請將 Prefix = 'MSLab-' 變更為使用新的前置詞名稱,例如 Lab1-。 在本教學課程中,我們將會使用預設的 MSLab 前置詞。

  4. 將 Windows Server 的預設 ForEach-Object 行註解化,並在 Azure Stack HCI 的ForEach-Object 行之前移除主題標籤,讓指令碼為叢集節點建立 Azure Stack HCI VM,而不是 Windows Server VM。

  5. 根據預設,指令碼會建立四個節點的叢集。 如果您想要變更叢集中的 VM 數目,請將 1..4 取代為 1..21..8 之類的內容。 請記住,叢集中的 VM 越多,主機伺服器上的記憶體需求就愈大。

  6. NestedVirt=$true ; AdditionalNetworks=$True 新增至 ForEach-Object 命令,並將 MemoryStartupBytes 設定為 4GB

  7. 新增 AdditionalNetworksConfig 行:$LabConfig.AdditionalNetworksConfig += @{ NetName = 'Converged'; NetAddress='10.0.1.'; NetVLAN='0'; Subnet='255.255.255.0'}

  8. 新增下列程式碼,設定執行 Windows server Core 作業系統的 Windows Admin Center 管理伺服器新增第二個 NIC,讓您可以從私人網路外部連線到 Windows Admin Center:$LabConfig.VMs += @{ VMName = 'AdminCenter' ; ParentVHD = 'Win2019Core_G2.vhdx'; MGMTNICs=2}

  9. 請務必將您的變更儲存至 LabConfig.ps1

在上述步驟中進行的 LabConfig.ps1 變更會反映在此程式碼區塊中:

$LabConfig=@{ DomainAdminName='LabAdmin'; AdminPassword='LS1setup!'; Prefix = 'MSLab-' ; DCEdition='4'; Internet=$true ; AdditionalNetworksConfig=@(); VMs=@() ; ServerISOFolder="C:\lab\isos" ; EnableGuestServiceInterface=$true ; UseHostDnsAsForwarder=$true }
# Windows Server 2019
#1..4 | ForEach-Object {$VMNames="S2D"; $LABConfig.VMs += @{ VMName = "$VMNames$_" ; Configuration = 'S2D' ; ParentVHD = 'Win2019Core_G2.vhdx'; SSDNumber = 0; SSDSize=800GB ; HDDNumber = 12; HDDSize= 4TB ; MemoryStartupBytes= 512MB }}
# Or Azure Stack HCI 
1..4 | ForEach-Object {$VMNames="AzSHCI"; $LABConfig.VMs += @{ VMName = "$VMNames$_" ; Configuration = 'S2D' ; ParentVHD = 'AzSHCI21H2_G2.vhdx'; SSDNumber = 0; SSDSize=800GB ; HDDNumber = 12; HDDSize= 4TB ; MemoryStartupBytes= 4GB ; NestedVirt=$true ; AdditionalNetworks=$true }}
# Or Windows Server 2022
#1..4 | ForEach-Object {$VMNames="S2D"; $LABConfig.VMs += @{ VMName = "$VMNames$_" ; Configuration = 'S2D' ; ParentVHD = 'Win2022Core_G2.vhdx'; SSDNumber = 0; SSDSize=800GB ; HDDNumber = 12; HDDSize= 4TB ; MemoryStartupBytes= 512MB }}

$LabConfig.AdditionalNetworksConfig += @{ NetName = 'Converged'; NetAddress='10.0.1.'; NetVLAN='0'; Subnet='255.255.255.0'}

$LabConfig.VMs += @{ VMName = 'AdminCenter' ; ParentVHD = 'Win2019Core_G2.vhdx'; MGMTNICs=2}

執行 MSLab 指令碼並建立父磁碟

MSLab 指令碼會將大部分的實驗室設定程序自動化,並將作業系統的 ISO 映像轉換成 VHD 檔案。

執行 Prereq 指令碼

瀏覽至 C:\Lab\wslab_xxx\,然後以滑鼠右鍵按一下檔案並選取 [使用 PowerShell 執行],以執行 1_Prereq.ps1 指令碼。 指令碼會下載必要的檔案。 某些範例檔案將會放在 ToolsDisk 資料夾中,而某些指令碼將會新增至 ParentDisks 資料夾。 指令碼會在完成時要求您按下 Enter 鍵以繼續。

注意

您可能需要以管理員身分執行下列 PowerShell Cmdlet,以變更系統上的指令碼執行原則來允許未簽署的指令碼:Set-ExecutionPolicy -ExecutionPolicy Unrestricted

建立 Windows Server 父磁碟

2_CreateParentDisks.ps1 指令碼會從作業系統 ISO 檔案中準備 Windows Server 和 Server Core 的虛擬硬碟 (VHD),也會準備網域控制站以進行部署,並設定所有必要的角色。 以滑鼠右鍵按一下檔案並選取 [使用 PowerShell 執行],以執行 2_CreateParentDisks.ps1

系統會要求您選取遙測層級;選擇 [B] 表示基本,或選擇 [F] 表示完整。 指令碼也會要求 Windows Server 2019 的 ISO 檔案。 請將其指向您將檔案複製到其中的位置 (C:\Labs\Isos)。 如果資料夾中有多個 ISO 檔案,系統會要求您選取要使用的 ISO。 請選取 Windows Server ISO。 如果系統要求您格式化磁碟機,請選取 [N]。

警告

請勿選取 Azure Stack HCI ISO - 您將在下一節中建立 Azure Stack HCI 父磁碟 (VHD)。

建立父磁碟可能需要長達 1-2 小時的時間,不過實際時間可能更少。 完成時,指令碼會詢問您是否應該移除不必要的檔案。 如果您選取 [Y],系統將會移除前兩個指令碼,因為已不再需要。 按 Enter 以繼續。

建立 Azure Stack HCI 父磁碟

Convert-WindowsImage.ps1 函式下載至 C:\Lab\wslab_xxx\ParentDisks 資料夾,以作為 。 然後以管理員身分執行 CreateParentDisk.ps1。 從 C:\Labs\Isos 中選擇 Azure Stack HCI ISO,並接受預設名稱和大小。

建立父磁碟需要一些時間。 當作業完成時,系統會提示您啟動 VM。 請還不要啟動 VM,請先輸入 N

部署 VM

以滑鼠右鍵按一下並選取 [使用 PowerShell 執行] 來執行 Deploy.ps1。 指令碼需要 10-15 分鐘的時間來完成。

安裝作業系統更新和軟體

現在 VM 已部署,您必須安裝安全性更新和管理實驗室所需的軟體。

更新網域控制站和 Windows Admin Center VM

登入您的虛擬主機,並啟動 Hyper-V 管理員。 您私人樹系中的網域控制站應該已在執行中 (MSLab-DC)。 移至 [虛擬機器],選取網域控制站,然後與之連線。 使用您指定的使用者名稱和密碼登入,或者如果您未進行變更,請使用預設值:LabAdmin/LS1setup!

安裝任何必要的安全性更新,並視需要重新啟動網域控制站 VM。 這可能需要一些時間,而且您可能需要重新啟動 VM 多次。

在 Hyper-V 管理員中,啟動執行 Server Core 的 Windows Admin Center VM (MSLab-AdminCenter)。 與之連線、登入,然後輸入 sconfig。 選取 [下載並安裝安全性更新],並視需要重新開機。 這可能需要一些時間,而且您可能需要重新啟動 VM 並輸入 sconfig 多次。

在網域控制站上安裝 Microsoft Edge

您必須在網域控制站 VM 上使用網頁瀏覽器,才能在您的私人樹系中使用 Windows Admin Center。 基於安全性考量,Internet Explorer 可能會遭到封鎖,所以請改用 Microsoft Edge。 如果網域控制站 VM 上尚未安裝 Edge,您必須進行安裝。

若要安裝 Microsoft Edge,請從 Hyper-V 管理員連線到網域控制站 VM,並以管理員身分啟動 PowerShell 工作階段。 然後執行下列程式碼,以安裝並啟動 Microsoft Edge。

#Install Edge
Start-BitsTransfer -Source "https://aka.ms/edge-msi" -Destination "$env:USERPROFILE\Downloads\MicrosoftEdgeEnterpriseX64.msi"
#Start install
Start-Process -Wait -Filepath msiexec.exe -Argumentlist "/i $env:UserProfile\Downloads\MicrosoftEdgeEnterpriseX64.msi /q"
#Start Edge
start microsoft-edge:

在閘道模式中安裝 Windows Admin Center

使用網域控制站 VM 上的 Microsoft Edge,將此指令碼下載到網域控制站 VM,並使用 .ps1 副檔名將其儲存。

以滑鼠右鍵按一下檔案,選擇 [使用 PowerShell 編輯],然後變更第一行中的 $GatewayServerName 值,以符合您的 AdminCenter VM 名稱,但不含前置詞 (例如 AdminCenter)。 儲存指令碼,然後以滑鼠右鍵按一下檔案並選取 [使用 PowerShell 執行] 來執行指令碼。

登入 Windows Admin Center

您現在應該能夠從 DC 上的 Edge 存取 Windows Admin Center:http://admincenter

您的瀏覽器可能會警告您這是不安全的連線,但您可以放心地繼續執行。

新增外部可存取的網路介面卡 (選用)

如果您的實驗室位於私人網路中,您可以將外部可存取的 NIC 新增至 AdminCenter VM,以便您可以從私人樹系外部連線並管理實驗室。 若要這樣做,請使用 Windows Admin Center 來連線到您的虛擬主機 (不是網域控制站),並移至 [虛擬機器] > [MSLab-AdminCenter] > [設定] > [網路]。 請確定您已將虛擬交換器連線到適當的網路。 尋找 Switch Type = External (例如 MSLab-LabSwitch-External)。 然後,將 VM NIC 新增/繫結至此外部虛擬交換器。 請務必選取 [允許管理作業系統共用這些網路介面卡] 核取方塊。

記下 AdminCenter VM 上網路介面卡的 IP 位址。 將 :443 附加至外部可存取的 NIC IP 位址,您應該就能夠登入 Windows Admin Center 並從外部網頁瀏覽器建立和管理您的叢集,例如:https://10.217.XX.XXX:443

在 Azure Stack HCI VM 上安裝作業系統更新

使用虛擬主機上的 Hyper-V 管理員來啟動 Azure Stack HCI VM。 連線至每個 VM,並在每個 VM 上使用 Sconfig 下載並安裝安全性更新。 您可能需要多次重新啟動 VM。 (如果您稍後會在叢集建立精靈中安裝 OS 更新,請略過此步驟)。

在 Azure Stack HCI VM 上啟用 Hyper-V 角色

如果您的叢集 VM 正在執行 Azure Stack HCI 20H2,您必須執行指令碼,以在 VM 上啟用 Hyper-V 角色。 將此指令碼儲存在虛擬主機上的 C:\Lab,以作為 PreviewWorkaround.ps1。

以滑鼠右鍵按一下 PreviewWorkaround.ps1 檔案,然後選取 [使用 PowerShell 編輯]。 如果不相符,請變更 $domainName$domainAdmin$nodeName 變數,例如:

$domainName = "corp.contoso.com"
$domainAdmin = "$domainName\labadmin"
$nodeName = "MSLab-AzSHCI1","MSLab-AzSHCI2","MSLab-AzSHCI3","MSLab-AzSHCI4"

儲存您的變更,然後以管理員身分開啟 PowerShell 工作階段,然後執行指令碼:

PS C:\Lab> ./PreviewWorkaround.ps1

指令碼需要一些時間才能執行,特別是當您已建立許多 VM 時。 您應該會看到此訊息:「MSLab-AzSHCI1 MSLab-AzSHCI2 現在已上線。 繼續安裝 Hyper-V PowerShell」。如果顯示訊息之後,指令碼看似凍結,請按 Enter 來將其喚醒。 完成時,您應該會看到:「MSLab-AzSHCI1 MSLab-AzSHCI2 現在已上線。 請繼續進行下一個步驟...」

新增其他網路介面卡 (選用)

根據您想要使用叢集的方式,您可以將更多網路介面卡新增至每部 Azure Stack HCI VM,以進行更多功能的測試。 若要這樣做,請使用 Windows Admin Center 連線到您的主機伺服器,並移至 [虛擬機器] > [MSLab-(節點)] > [設定] > [網路]。 請務必選取 [進階] > [啟用 MAC 位址詐騙]。 如果未啟用此設定,嘗試建立叢集時可能會發生失敗的連線測試。

使用 Azure 註冊 Windows Admin Center

使用外部 URL 或網域控制站上的 Edge 來連線到私人樹系中的 Windows Admin Center,並向 Azure 註冊 Windows Admin Center

清除資源

如果您選取 [Y] 來清除不必要的檔案和資料夾,則清除已完成。 如果您想要手動進行此作業,請瀏覽至 C:\Labs,並刪除任何不需要的檔案。

後續步驟

您現在已經準備好繼續進行叢集建立精靈。