PowerCLI と VMware.Hv.Helper モジュールを利用して、コマンド ラインからデスクトップ プールを作成してみます。
今回の内容です。
- 今回の環境
- 1. Horizon Connection Server と vCenter Server への接続
- 2. フル クローン デスクトップ プールの作成
- 3. インスタント クローン デスクトップ プールの作成
今回の環境
今回の Horizon 8 の環境も、下記からの一連の投稿で構築したものです。
今回の PowerCLI 実行環境は、下記のように準備してあります。
1. Horizon Connection Server と vCenter Server への接続
PowerShell(PowerCLI)コンソールを起動して、前回 と同様に、Horizon Connection Server に接続しておきます。
- "192.168.80.41" は、このラボの Connection Server のアドレスです。
- "EUC" は、このラボの AD ドメインの NetBIOS 名です。
Connect-HVServer "192.168.80.41" -Domain "EUC" -User "Administrator" -Password "VMware1!"
さらに、vCenter Server にも接続しておきます。これは、プールで vCenter インベントリのオブジェクトを指定するために必要になります。
- lab-vc-81.euc.go-lab.jp は、このラボの vCenter のアドレスです。
Connect-VIServer "lab-vc-81.euc.go-lab.jp" -User "administrator@vsphere.local" -Password "VMware1!" -Force
2. フル クローン デスクトップ プールの作成
まずは、フル クローンのデスクトップ プールを作成してみます。
ここでは、下記の投稿で Horizon Console から作成したものに近いパラメータで作成します。
2-1. デスクトップ プールの作成(フル クローン)
フル クローンのプールを作成するには、New-HVPool コマンドレットに「-FullClone」オプションで実行します。今回も、仮想デスクトップは1台だけ(-MinimumCount 1 -SpareCount 1 -MaximumCount 1)しか展開しません。
New-HVPool -FullClone ` -Vcenter "lab-vc-81.euc.go-lab.jp" ` -UserAssignment DEDICATED ` -AutomaticAssignment:$true ` -Datacenter "Datacenter-81" ` -PoolName "test-win2019-pool-01" ` -PoolDisplayName "Test Win2019 Pool 01" ` -Enable:$true ` -EnableProvisioning:$true ` -NamingMethod PATTERN ` -NamingPattern "test-w2019-{n:fixed=2}" ` -MinimumCount 1 -SpareCount 1 -MaximumCount 1 ` -Template "win2019-template-01" ` -VmFolder "vdi-pools" ` -HostOrCluster "lab-cluster-81" ` -ResourcePool "lab-cluster-81" ` -Datastores "Datastore-Local-VMFS-31" ` -defaultDisplayProtocol BLAST ` -CustType SYS_PREP ` -ReusePreExistingAccounts:$true ` -SysPrepName "customspec-win2019-01"
下記のコマンド ラインで、デスクトップ プールのサマリ情報を確認できます。
Get-HVPoolSummary -PoolName "test-win2019-pool-01" | ft -AutoSize
実行すると、作成されたプールが下記のように確認できます。
PS C:\Users\user01> Get-HVPoolSummary -PoolName "test-win2019-pool-01" | ft -AutoSize Name DisplayName Type Source User Assignment Entitled Enabled Sessions ---- ----------- ---- ------ --------------- -------- ------- -------- test-win2019-pool-01 Test Win2019 Pool 01 AUTOMATED VIRTUAL_CENTER DEDICATED 0 True 0
2-2. ログオン資格の割り当て
デスクトップ プールに、ログオン資格を割り当てます。
Get-HVPool -PoolName "test-win2019-pool-01" | New-HVEntitlement -User "Administrators@euc.go-lab.jp" -Type Group
コマンドを実行すると、下記のように資格が割り当てれます。
PS C:\Users\user01> Get-HVPool -PoolName "test-win2019-pool-01" | New-HVEntitlement -User "Administrators@euc.go-lab.jp" -Type Group 1 resource(s) will be entitled with UserOrGroup: Administrators@euc.go-lab.jp
ちなみに、ユーザ名やグループ名が間違っている場合は、下記のように設定されません。
PS C:\Users\user01> Get-HVPool -PoolName "test-win2019-pool-01" | New-HVEntitlement -User "Administrator@euc.go-lab.jp" -Type Group Unable to find specific user or group with given search parameters
Horizon Console でも、作成されたプールを確認できます。
少し待ってデスクトップ プールの展開が完了したら、ログオン確認をしておきます。このプールにはドメイン Administrators グループに資格を付与してあるので、ドメイン Administrator ユーザで Horizon Client や Horizon HTML Access からログオンできるはずです。
2-3. デスクトップ プールの削除
ログオン確認ができたら、デスクトップ プールを削除しておきます。
- -TerminateSession: 仮想デスクトップのセッションを終了します。
- -DeleteFromDisk:仮想デスクトップの 仮想マシンを削除します。
Get-HVPool -PoolName "test-win2019-pool-01" | Remove-HVPool -TerminateSession -DeleteFromDisk
下記のように、削除できるはずです。
PS C:\Users\user01> Get-HVPool -PoolName "test-win2019-pool-01" | Remove-HVPool -TerminateSession -DeleteFromDisk Terminating Sessions, it may take few seconds... Deleting Pool: test-win2019-pool-01
3. インスタント クローン デスクトップ プールの作成
まずは、フル クローンのデスクトップ プールを作成してみます。
ここでは、下記の投稿で Horizon Console から作成したものに近いパラメータで作成します。
3-1. デスクトップ プールの作成(インスタント クローン)
フル クローンのプールを作成するには、New-HVPool コマンドレットに「-FullClone」オプションで実行します。
- 以前の投稿とは異なり、デスクトップへのユーザ割り当ては、専用ではなく、「フローティング」(-UserAssignment FLOATING)にしてあります。New-HVPool では指定が難しかったもので・・・
- 今回も、仮想デスクトップは1台だけ(-MinimumCount 1 -SpareCount 1 -MaximumCount 1)しか展開しません。
- ポートグループの割り当ては、クローン元に指定した仮想マシンのままにします。
New-HVPool -InstantClone ` -Vcenter "lab-vc-81.euc.go-lab.jp" ` -UserAssignment FLOATING ` -AutomaticAssignment:$true ` -Datacenter "Datacenter-81" ` -PoolName "test-win2019-pool-02" ` -PoolDisplayName "Test Win2019 Pool 02" ` -Enable:$true ` -EnableProvisioning:$true ` -NamingMethod PATTERN ` -NamingPattern "test-ic-{n:fixed=2}" ` -MinimumCount 1 -SpareCount 1 -MaximumCount 1 ` -ParentVM "win2019-template-02" ` -SnapshotVM "snapshot-for-ic-01" ` -VmFolder "vdi-pools" ` -HostOrCluster "lab-cluster-81" ` -ResourcePool "lab-cluster-81" ` -Datastores "Datastore-Local-VMFS-31" ` -defaultDisplayProtocol BLAST ` -NetBiosName "EUC" ` -AdContainer "CN=Computers" ` -ReusePreExistingAccounts:$true
下記のコマンド ラインで、デスクトップ プールのサマリ情報を確認できます。
Get-HVPoolSummary -PoolName "test-win2019-pool-02" | ft -AutoSize
実行すると、作成されたプールが下記のように確認できます。インスタント クローンのプールでは、Source が INSTANT_CLONE_ENGINE になります。
PS C:\Users\user01> Get-HVPoolSummary -PoolName "test-win2019-pool-02" | ft -AutoSize Name DisplayName Type Source User Assignment Entitled Enabled Sessions ---- ----------- ---- ------ --------------- -------- ------- -------- test-win2019-pool-02 Test Win2019 Pool 02 AUTOMATED INSTANT_CLONE_ENGINE FLOATING 0 True 0
3-2. ログオン資格の割り当て
デスクトップ プールに、ログオン資格を割り当てます。
Get-HVPool -PoolName "test-win2019-pool-02" | New-HVEntitlement -User "Administrators@euc.go-lab.jp" -Type Group
少し待ってデスクトップ プールの展開が完了したら、ログオン確認をしておきます。このプールでも、ドメイン Administrator ユーザで Horizon Client や Horizon HTML Access からログオンできるはずです。
3-3. デスクトップ プールの削除
ログオン確認ができたら、デスクトップ プールを削除しておきます。
- -TerminateSession: 仮想デスクトップのセッションを終了します。
- -DeleteFromDisk:仮想デスクトップの 仮想マシンを削除します。
Get-HVPool -PoolName "test-win2019-pool-02" | Remove-HVPool -TerminateSession -DeleteFromDisk
以上、PowerCLI でデスクトップ プールを作成してみる話でした。