チュートリアル: 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 OS は、Azure portalからダウンロードできます。 ダウンロード手順については、「 Azure Stack HCI オペレーティング システムのダウンロード」を参照してください。

Windows Server をダウンロードする

また、ドメイン コントローラーと Windows Admin Center の VM には、Windows Server 2022、Windows Server 2019、または Windows Server 2016のコピー も必要です。 評価メディアを使用することも、VL または Visual Studio Subscription にアクセスできる場合はそれらを使用することもできます。 このチュートリアルでは、評価版をダウンロードします。

ラボ ファイル用のフォルダーを作成する

C ドライブのルート (または任意の場所) に Lab フォルダーを作成し、エクスプローラーを使用して、ダウンロードした OS ファイルを C:\Lab\Isos フォルダーにコピーします。

MSLab スクリプトをダウンロードする

サーバー上で Web ブラウザーを使用して、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 VM ではなく Azure Stack HCI VM がスクリプトによって作成されるように、Windows Server の既定の ForEach-Object 行をコメント アウトして、Azure Stack HCI の ForEach-Object 行の前のハッシュタグを削除します。

  5. 既定では、スクリプトによって 4 ノード クラスターが作成されます。 クラスター内の VM の数を変更する場合は、1..41..21..8 などで置き換えます。 クラスター内の VM の数が多いほど、ホスト サーバーでのメモリ要件が大きくなることに注意してください。

  6. NestedVirt=$true ; AdditionalNetworks=$TrueForEach-Object コマンドに追加し、MemoryStartupBytes4GB に設定します。

  7. 次の AdditionalNetworksConfig 行を追加します: $LabConfig.AdditionalNetworksConfig += @{ NetName = 'Converged'; NetAddress='10.0.1.'; NetVLAN='0'; Subnet='255.255.255.0'}

  8. プライベート ネットワークの外部から Windows Admin Center に接続できるようにするために、次の行を追加して、Windows Server Core オペレーティング システムを実行する Windows Admin Center 管理サーバーを構成し、2 つ目の NIC を追加します: $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\ に移動して、1_Prereq.ps1 ファイルを右クリックし、 [PowerShell で実行] を選択してスクリプトを実行します。 スクリプトによって必要なファイルがダウンロードされます。 いくつかのサンプル ファイルが ToolsDisk フォルダーに配置され、いくつかのスクリプトが ParentDisks フォルダーに追加されます。 スクリプトが終了すると、Enter キーを押して続行するように求めるメッセージが表示されます。

Note

次の PowerShell コマンドレットを管理者として実行することで、署名されていないスクリプトを許可するようにシステムのスクリプト実行ポリシーを変更することが必要な場合があります: Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Windows Server の親ディスクを作成する

2_CreateParentDisks.ps1 スクリプトによって、オペレーティング システムの ISO ファイルから Windows Server および Server Core 用の仮想ハード ディスク (VHD) が準備されます。また、必要なすべての役割を構成して、ドメイン コントローラーのデプロイが準備されます。 2_CreateParentDisks.ps1 ファイルを右クリックし、 [PowerShell で実行] を選択して実行します。

テレメトリ レベルを選択するように求めるメッセージが表示されます。Basic の場合は BFull の場合は F を選択します。 また、スクリプトによってWindows Server 2019 の ISO ファイルも求められます。 ファイルをコピーした場所 (C:\Labs\Isos) を示します。 フォルダー内に複数の ISO ファイルがある場合は、使用する ISO を選択するよう求められます。 Windows サーバー ISO を選択します。 ドライブをフォーマットするよう求めるメッセージが表示されたら、N を選択します。

警告

Azure Stack HCI の ISO を選択しないでください。Azure Stack HCI の親ディスク (VHD) は次のセクションで作成します。

親ディスクの作成には 1、2 時間かかることがありますが、はるかに短時間の場合もあります。 完了すると、不要なファイルを削除する必要があるかどうかを確認するメッセージがスクリプトによって表示されます。 Y を選択すると、最初の 2 つのスクリプトは不要であるため削除されます。 Enter キーを押して続行します。

Azure Stack HCI の親ディスクを作成する

Convert-WindowsImage.ps1 関数を C:\Lab\wslab_xxx\ParentDisks フォルダーにダウンロードし、Convert-WindowsImage.ps1 とします。 次に、管理者として CreateParentDisk.ps1 を実行します。 C:\Labs\Isos から Azure Stack HCI の ISO を選択し、既定の名前とサイズをそのまま使用します。

親ディスクの作成には時間がかかります。 操作が完了すると、VM を起動するように求められます。 まだ起動せずに、N を入力します。

VM をデプロイする

Deploy.ps1 を右クリックし、 [PowerShell で実行] を選択して実行します。 このスクリプトが完了するには 10 から 15 分かかります。

オペレーティング システムの更新プログラムとソフトウェアをインストールする

VM がデプロイされたので、セキュリティ更新プログラムと、ラボの管理に必要なソフトウェアをインストールする必要があります。

ドメインコントローラーと Windows Admin Center の VM を更新する

仮想化ホストにログオンし、Hyper-V マネージャーを起動します。 プライベート フォレスト内のドメイン コントローラーは、既に実行されているはずです (MSLab-DC)。 [Virtual Machines](仮想マシン) に移動してドメイン コントローラーを選択し、それに接続します。 指定したユーザー名とパスワードでサインインするか、これらを変更しなかった場合は既定値の LabAdmin/LS1setup! を使用します。

必要なセキュリティ更新プログラムをインストールし、必要に応じてドメイン コントローラー VM を再起動します。 これには時間がかかる場合があります。また、VM の再起動が複数回必要になる場合があります。

Hyper-V マネージャーで、Server Core を実行している Windows Admin Center VM (MSLab-AdminCenter) を起動します。 それに接続してログインし、「sconfig」と入力します。 [download and install security updates](セキュリティ更新プログラムのダウンロードとインストール) を選択し、必要に応じて再起動します。 これには時間がかかる場合があります。VM の再起動と「sconfig」の入力が複数回必要になる場合があります。

ドメイン コントローラーに Microsoft Edge をインストールする

プライベート フォレストで Windows Admin Center を使用するために、ドメイン コントローラー VM 上に Web ブラウザーが必要です。 セキュリティ上の理由から 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 ファイル拡張子で保存します。

このファイルを右クリックして [Edit with PowerShell](PowerShell で編集) を選択し、最初の行の $GatewayServerName の値を、プレフィックスなしの AdminCenter VM の名前 (例: AdminCenter) と一致するように変更します。 スクリプトを保存し、ファイルを右クリックして [PowerShell で実行] を選択して実行します。

Windows Admin Center にログオンする

これで、DC 上の Edge から Windows Admin Center ( http://admincenter ) にアクセスできるはずです。

ブラウザーから、安全でない、またはセキュリティで保護されていない接続であるという警告が表示される場合がありますが、続行して問題ありません。

外部からアクセス可能なネットワーク アダプターを追加する (省略可能)

ラボがプライベート ネットワーク上にある場合は、外部からアクセス可能な NIC を AdminCenter VM に追加して、プライベート フォレストの外部からラボに接続して管理することができます。 これを行うには、Windows Admin Center を使用して (ドメイン コントローラーではなく) 仮想化ホストに接続し、[仮想マシン] > [MSLab-AdminCenter] > [設定] > [ネットワーク] の順に移動します。 仮想スイッチが適切なネットワークに接続されていることを確認します。 種類が "External" のスイッチを探します (MSLab-LabSwitch-External など)。 次に、この外部仮想スイッチに VM の NIC を追加またはバインドします。 [Allow management OS to share these network adapters](管理 OS によるこれらのネットワーク アダプターの共有を許可する) チェックボックスを必ずオンにします。

AdminCenter VM 上のネットワーク アダプターの IP アドレスをメモします。 外部からアクセス可能な NIC の IP アドレスに :443 を追加します。これで、Windows Admin Center にログオンし、外部の Web ブラウザーからクラスターを作成して管理できます (例: https://10.217.XX.XXX:443 )。

Azure Stack HCI VM にオペレーティング システムの更新プログラムをインストールする

仮想化ホスト上の Hyper-V マネージャーを使用して、Azure Stack HCI 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 ファイルを右クリックし、 [Edit with PowerShell](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 is now online. Proceeding to install Hyper-V PowerShell." というメッセージが表示されます。このメッセージの表示後にスクリプトがフリーズしているように見える場合は、Enter キーを押してウェイク アップします。 完了すると、以下が表示されます。"MSLab-AzSHCI1 MSLab-AzSHCI2 is now online. Proceed to the next step ..." (MSLab-AzSHCI1 MSLab-AzSHCI2 がオンラインになりました。次のステップに進みます) というメッセージが表示されます。

さらにネットワーク アダプターを追加する (省略可能)

クラスターの使用目的に応じて、テストの汎用性を高めるために、各 Azure Stack HCI VM にいくつかのネットワーク アダプターを追加できます。 これを行うには、Windows Admin Center を使用してホスト サーバーに接続し、[仮想マシン] > [MSLab-(ノード)] > [設定] > [ネットワーク] の順に移動します。 必ず [詳細設定] > [MAC アドレスのスプーフィングを有効にする] を選択してください。 この設定が有効になっていないと、クラスターを作成しようとしたときに接続テストが失敗することがあります。

Windows Admin Center を Azure に登録する

外部 URL を使用するか、ドメイン コントローラー上の Edge を使用して、プライベート フォレスト内の Windows Admin Center に接続し、Windows Admin Center を Azure に登録します。

リソースをクリーンアップする

不要なファイルとフォルダーをクリーンアップするために Y を選択した場合、クリーンアップは既に完了しています。 手動で行う場合は、C:\Labs に移動して不要なファイルを削除します。

次の手順

これで、クラスター作成ウィザードに進む準備ができました。