教學課程:為 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 入口網站下載 Azure Stack HCI OS。 如需下載指示,請參閱 下載 Azure Stack HCI 作業系統

下載 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,並刪除任何不需要的檔案。

後續步驟

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