VMware Horizon の操作を検証するために、小規模なラボを構築していきます。今回は、Active Directory(AD)まわりの準備をします。手順中のコマンドラインは、特に説明がない場合は PowerShell コンソールで実行します。
前回はこちら。
今回の内容です。
- 1. Windows Server 2019 仮想マシンの用意
- 2. Active Directory ドメイン コントローラの構築
- 3. DNS サーバの設定
- 4. ラボ環境での DNS 関連設定の調整
- 5. DHCP サーバの設定
1. Windows Server 2019 仮想マシンの用意
Active Directory ドメイン コントローラを構築する Windows Server 仮想マシンを用意します。この仮想マシンは、クローンして Horizon Connection Server と仮想デスクトップとしても利用します。
1-1. ISO イメージのデータストアへのアップロード
Windows Server 2019 の ISO イメージ ファイルは、vSphere Client を利用して、データストアにアップロードしておきます。
ISO ファイルのアップロードが失敗する場合は、ESXi の証明書エラーに対処することで回避できるはずです。
失敗した ISO アップロードのステータスにある「詳細」リンクをクリックすると、下記のように対処方法が表示されます。
一度、画面に表示されている ESXi の URL にアクセスして、証明書エラーに対処(下記画面の赤枠のリンクをクリック)してから、あらためて ISO をアップロードします。
1-2. Windows Server 2019 インストール
Windows Server 2019 は、仮想マシンを作成して ISO イメージから普通にインストールします。特別な手順ではないので、今回は省略します。
オペレーティング システム(というよりエディション?)は、「Windows Server 2019 Standard Evaluation(デスクトップ エクスペリエンス)」を選択しました。
1-3. OS 設定の調整
インストールが終わった Windows Server 2019 にローカル Administrator ユーザでログインして、最低限の設定をしておきます。検証用サーバとして利用しやすいように、「サーバー マネージャー」→「ローカル サーバー」などで、下記のように設定しておきます。
VMware Tools のインストール
最初に、VMware Tools をインストールしておきます。
インストーラの ISO イメージは、vSphere Client で対象の仮想マシンを右クリック →「ゲスト OS」→「VMware Tools のインストール」をクリックすることで、仮想 CD / DVD ドライブにマウントされます。
Windows ゲスト OS で DVD ドライブ(D:)をダブル クリックするとインストーラが起動されるので、ウィザードに従ってデフォルトのパラメータでインストールします。
Windows Defender ファイアウォールの無効化
Windows Defender ファイアウォールは、すべてのネットワークで無効にしておきます。
- ドメイン ネットワーク: オフ
- プライベート ネットワーク: オフ
- パブリック ネットワーク: オフ
リモート デスクトップの有効化
リモート デスクトップを有効にしておきます。
- このコンピューターへのリモート接続を許可する: 選択
- ネットワーク レベル認証でのリモート デスクトップを実行しているコンピューターからのみ接続を許可する: オフ
あと、必要に応じて Windows Update を実行しておきます。
1-4. Sysprep の実行
クローンの準備としてサーバの固有情報を削除するため、syprep.exe を実行します。「/shutdown」オプションにより、Windows はシャットダウンされます。
C:\Windows\System32\Sysprep\sysprep.exe /quiet /oobe /generalize /shutdown /mode:vm
これで、次に Windows を起動した際に、初回起動時と同様のウィザードが起動されるようになります。
この仮想マシンは、起動すると Sysprep の再実行が必要になるのでシャットダウンしたままにしておきます。また、この時点で仮想マシンのスナップショットを取得しておくと、検証をリトライしやすくなります。
1-5. 仮想マシンのクローン作成
Sysprep を実行した仮想マシンから、AD ドメイン コントローラにする仮想マシン(lab-ad-81)をクローン作成します。
仮想マシンのスペックは下記にしました。
- vCPU: 1
- メモリ: 4GB
仮想マシンの設定には、vSphere Client の Web コンソールを使用します。
仮想マシン「lab-ad-81」を起動すると、Sysprep の効果により OOBE(Out of Box Experience)の画面が表示されるので、ウィザードに沿って進めます。
タイムゾーン設定は日本のまま、「次へ」をクリックします。
「ライセンス条項」で「承諾する」をクリックします。
設定する Administrator ユーザのパスワードを 2回入力して、「完了」をクリックします。
「Ctrl + Alt + Delete キーの送信」をクリックして、直前に設定した Administrator ユーザのパスワードを入力してログインします。
この時点では、ネットワーク アドレスが DHCP による自動取得になっているので、IP アドレス(192.168.80.11)を設定します。
今回は、PowerShell コマンドレットで IP アドレスを設定します。
Get-NetAdapter -Name Ethernet0 | New-NetIPAddress -IPAddress "192.168.80.11" -PrefixLength 24 -DefaultGateway "192.168.80.1"
コンピュータ名(lab-ad-81)を設定しておきます。このコマンドの実行により、Windows が再起動されます。
Rename-Computer -NewName "lab-ad-81" -Restart
再起動が完了したら、リモート デスクトップ経由で接続して、ローカル Administrator ユーザで作業を進めます。
2. Active Directory ドメイン コントローラの構築
ADDS の役割をインストールします。
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
ドメイン コントローラとしてセットアップします。今回は、Install-ADDSForest コマンドレットでドメインを作成します。
このラボのドメイン名は euc.go-lab.jp、NetBIOS 名は EUC にします。
$pass = echo "VMware1!" | ConvertTo-SecureString -AsPlainText -Force Import-Module ADDSDeployment Install-ADDSForest ` -DomainName "euc.go-lab.jp" ` -DomainNetbiosName "EUC" ` -ForestMode "WinThreshold" ` -DomainMode "WinThreshold" ` -SafeModeAdministratorPassword $pass ` -InstallDns:$true ` -CreateDnsDelegation:$false ` -DatabasePath "C:\Windows\NTDS" ` -LogPath "C:\Windows\NTDS" ` -SysvolPath "C:\Windows\SYSVOL" ` -NoRebootOnCompletion:$false ` -Force:$true
コマンドレットの処理でOS が自動再起動された後は、ドメインの Administrator ユーザ(EUC\Administrator)でログインします。
3. DNS サーバの設定
ドメイン コントローラのセットアップと同時にインストールされた DNS サーバに、ラボ環境むけの設定を追加します。
3-1. DNS フォワーダの設定
DNS サーバで管理外のドメインでも名前解決できるように、DNS フォワーダを設定しておきます。
Set-DnsServerForwarder -IPAddress "8.8.8.8"
フォワーダの設定を確認しておきます。
PS> Get-DnsServerForwarder UseRootHint : True Timeout(s) : 3 EnableReordering : True IPAddress : 8.8.8.8 ReorderedIPAddress : 8.8.8.8
3-2. 逆引き参照ゾーンの作成
ラボ ネットワーク「192.168.80.0」の、逆引き参照ゾーン(80.168.192.in-addr.arpa)を作成しておきます。
Add-DnsServerPrimaryZone -Name "80.168.192.in-addr.arpa" -ReplicationScope:Domain
3-3. リソース レコードの登録
「euc.go-lab.jp」ゾーンに、DNS リソース レコードを登録します。
ここでは、次の A レコードを登録しておきます。それぞれ、「-CreatePtr」オプションで逆引き(PTR)レコードも作成しておきます。
- vCenter(lab-vc-81.euc.go-lab.jp)
- Horizon Connection Server(lab-horizon-81.euc.go-lab.jp)
- ESXi(infra-esxi-31.euc.go-lab.jp)※これはついでとして。
Add-DnsServerResourceRecord -ZoneName "euc.go-lab.jp" -A "lab-vc-81" -IPv4Address "192.168.80.21" -CreatePtr Add-DnsServerResourceRecord -ZoneName "euc.go-lab.jp" -A "infra-esxi-31" -IPv4Address "192.168.80.31" -CreatePtr Add-DnsServerResourceRecord -ZoneName "euc.go-lab.jp" -A "lab-horizon-81" -IPv4Address "192.168.80.41" -CreatePtr
DNS リソース レコードが登録できたことを確認しておきます。
Get-DnsServerResourceRecord -ZoneName "euc.go-lab.jp" -RRType A | where {$_.HostName -match "^lab|^infra"} | select HostName,{$_.RecordData.IPv4Address.IPAddressToString} Get-DnsServerResourceRecord -ZoneName "80.168.192.in-addr.arpa" -RRType Ptr | select HostName,{$_.RecordData.PtrDomainName}
コマンドレットを実行すると、下記のようにレコードが確認できるはずです。
PS C:\Users\Administrator> Get-DnsServerResourceRecord -ZoneName "euc.go-lab.jp" -RRType A | where {$_.HostName -match "^lab|^infra"} | select HostName,{$_.RecordData.IPv4Address.IPAddressToString} HostName $_.RecordData.IPv4Address.IPAddressToString -------- ------------------------------------------- infra-esxi-31 192.168.80.31 lab-ad-81 192.168.80.11 lab-horizon-81 192.168.80.41 lab-vc-81 192.168.80.21 PS C:\Users\Administrator> Get-DnsServerResourceRecord -ZoneName "80.168.192.in-addr.arpa" -RRType Ptr | select HostName,{$_.RecordData.PtrDomainName} HostName $_.RecordData.PtrDomainName -------- --------------------------- 21 lab-vc-81.euc.go-lab.jp. 31 infra-esxi-31.euc.go-lab.jp. 41 lab-horizon-81.euc.go-lab.jp.
4. ラボ環境での DNS 関連設定の調整
ラボ環境内で参照する DNS サーバを、構築した AD DNS サーバ「192.168.80.11」に切り替えておきます。そして、今回は DNS サーバがない状態で VCSA をデプロイしたので、DNS サーバが構築できた時点でホスト名/PNID を FQDN に変更します。
4-1. 作業端末の 参照 DNS サーバ変更
vSphere Client や Horizon Console などに FQDN でアクセスできるように、作業端末が参照する DNS サーバを、AD DNS サーバ「192.168.80.11」に変更しておきます。
すでに他の DNS サーバが検証環境に構築されていて、両方のゾーンを参照したい場合は、ゾーン委任や条件付きフォワーダなどを設定して、AD DNS サーバのもつゾーン(euc.go-lab.jp と 80.168.192.in-addr.arpa)を参照できるようにしておきます。
4-2. VCSA VAMI での参照 DNS サーバとホスト名 変更
ここでは、VCSAの管理インターフェイス(VAMI)にログインして作業します。
Web ブラウザから、VCSA の 5480 ポート(今回は https://192.168.80.21:5480/)にアクセスして、root ユーザでログインします。
VAMI で、VCSA のホスト名を変更します。
「ネットワーク」→「ネットワーク設定」にある「編集」をクリックします。
「NIC 0」が選択された状態で、「次へ」をクリックします。
「ホスト名と DNS」を展開して、以下を入力してから「次へ」をクリックします。
- ホスト名: lab-vc-81.euc.go-lab.jp
※DNS サーバに登録した A レコードを FQDN で入力する。 - DNS 設定 → DNS 設定を手動で入力: 192.168.80.11
※AD DNS サーバの IP アドレスを入力する。
「SSO 認証情報」では、vCenter SSO の管理者ユーザとして、administrator@vsphere.local の情報を入力します。
最後に、「設定確認」でバックアップ取得の確認チェックをオンにして、「完了」をクリックするとホスト名変更の処理が開始されます。
処理の完了を待って Web ブラウザでアクセスしなおすと、ホスト名が FQDN に変更されています。
ちなみに、これで vCenter が内部で設定されている「PNID」も変更されます。
そして、vSphere Client が FQDN(今回は https://lab-vc-81.euc.go-lab.jp/ui/)でログインできるようになるはずです。
4-3. ESXi の 参照 DNS サーバ変更
vSphere Client で、ESXi の参照 DNS サーバを AD DNS サーバ(192.168.80.11)変更しておきます。
設定は、ESXi ホストの「構成」→「ネットワーク」→「TCP/IP 設定」→「デフォルト」を選択して、「編集」をクリックすると変更できます。
4-3. 【補足】VCSA / ESXi の時刻同期
ラボ環境では、VCSA、ESXi、AD、Horizon Connection Server、そしてそれ以外の仮想マシンも含めて時刻同期が必要です。今回構築した AD サーバを NTP サーバとして利用することもできますが、次のような不都合があります。
- 仮想マシンなので時刻が安定しにくい。
- AD だと Linux からの時刻同期で工夫が必要。
そのため、可能な限り外部にある NTP サーバを時刻同期に利用するとよいかなと思います。
5. DHCP サーバの設定
仮想デスクトップの展開で DHCP を利用するので、AD の仮想マシンに DHCP サーバを構築しておきます。
5-1. DHCP サーバの構築
DHCP サーバの役割をインストールします。
Install-WindowsFeature -Name DHCP -IncludeManagementTools
AD での DHCP サーバ承認を行います。
Add-DhcpServerInDC -DnsName "lab-ad-81.euc.go-lab.jp" -IPAddress "192.168.80.11" Get-DhcpServerInDC
5-2. DHCP スコープの作成
DHCP スコープを、下記のような設定で作成します。
- IP アドレスの範囲: 192.168.80.100 ~ 199
- サブネットマスク: 255.255.255.0
- デフォルト ゲートウェイ: 192.168.80.1
- 参照 DNS サーバ: 192.168.80.11
Add-DhcpServerv4Scope -name "horizon-lab" -StartRange "192.168.80.100" -EndRange "192.168.80.199" -SubnetMask "255.255.255.0" -State Active Set-DhcpServerv4OptionValue -ScopeID "192.168.80.0" -OptionID 3 -Value "192.168.80.1" Set-DhcpServerv4OptionValue -ScopeID "192.168.80.0" -DnsDomain "euc.go-lab.jp" -DnsServer "192.168.80.11"
DHCP スコープの設定を確認しておきます。
Get-DhcpServerv4Scope -ScopeId "192.168.80.0" Get-DhcpServerv4OptionValue -OptionId 3,6,15 -ScopeId "192.168.80.0" | ft -AutoSize Name,Value
下記のように、DHCP スコープが作成されたことが確認できます。
PS C:\Users\Administrator> Get-DhcpServerv4Scope -ScopeId "192.168.80.0" ScopeId SubnetMask Name State StartRange EndRange LeaseDuration ------- ---------- ---- ----- ---------- -------- ------------- 192.168.80.0 255.255.255.0 horizon-lab Active 192.168.80.100 192.168.80.199 8.00:00:00 PS C:\Users\Administrator> Get-DhcpServerv4OptionValue -OptionId 3,6,15 -ScopeId "192.168.80.0" | ft -AutoSize Name,Value Name Value ---- ----- ルーター {192.168.80.1} DNS ドメイン名 {euc.go-lab.jp} DNS サーバー {192.168.80.11}
つづく。