Horizon 8 のイベント データベースを、PowerCLI で構成してみます。今回は、Horizon Connection Server からデータベース サーバへの接続を切り替えてみます。
今回の内容です。
今回の環境
Horizon 8 環境は、下記のように構築してあります。
PowerCLI の実行環境は、下記のように構築してあります。Horizon の操作には、VMware.Hv.Helper モジュールを使用します。
データベース サーバは、下記のように構築してあります。
- Horizon 8 のイベント データベースを構築してみる。(Microsoft SQL Server コンテナ)
- Horizon 8 のイベント データベースを構築してみる。(PostgreSQL)
- Horizon 8 のイベント データベースを構築してみる。(Oracle Database 21c XE コンテナ)
PowerCLI でのイベント データベースの構成
ここからは、Horizon Connection Server の下記の画面にあたる手順を、PowerCLI で実行してみます。
0. Horizon Connection Server への接続
まず、PowerCLI から Horizon Connection Server に接続しておきます。
PS C:\Users\user01> Connect-HVServer "192.168.80.41" -Domain "EUC" -User "Administrator" -Password "VMware1!" ServiceUri : https://192.168.80.41/view-vlsi/sdk RefCount : 1 User : Administrator Domain : EUC Id : /ViewServer=administrator@192.168.80.41/ SessionSecret : f89c20c0-4298-4013-ac7c-7c4323ddd22d IsConnected : True ExtensionData : VMware.Hv.Services Name : 192.168.80.41 Uid : /ViewServer=administrator@192.168.80.41/ Client : VMware.VimAutomation.HorizonView.Impl.V1.ViewServerClientImpl
この時点では、まだ Horizon イベント データベースは構成されていません。
PS C:\Users\user01> Get-HVEventDatabase No Event Database configuration found
1. Microsoft SQL Server への接続
それでは、Microsoft SQL Server に接続してみます。イベント データベースの構成には、Set-HVEventDatabase コマンドレットを使用します。
パスワード文字列は、「ConvertTo-SecureString」で System.Security.SecureString 型に変換しておきます。
$pass = "VMware1!" | ConvertTo-SecureString -AsPlainText -Force Set-HVEventDatabase ` -ServerName "192.168.80.52" ` -DatabaseType "SQLSERVER" ` -DatabasePort 1433 ` -DatabaseName "evtdb" ` -UserName "sa" ` -password $pass ` -TablePrefix "evt_"
Set-HVEventDatabase コマンドレットを実行して、成功すると特に出力はありません。データベースにプリフィックスで指定した名前のテーブル一式が存在しない場合は自動作成されます。そして、すでにテーブルが存在する場合は、以前に格納されたイベント情報が確認できるようになります。
PS C:\Users\user01> Set-HVEventDatabase ` >> -ServerName "192.168.80.52" ` >> -DatabaseType "SQLSERVER" ` >> -DatabasePort 1433 ` >> -DatabaseName "evtdb" ` >> -UserName "sa" ` >> -password $pass ` >> -TablePrefix "evt_" PS C:\Users\user01>
Get-HVEventDatabase で、イベント データベースが構成構成されたことが確認できます。
PS C:\Users\user01> Get-HVEventDatabase Servername : 192.168.80.52 Type : SQLSERVER DatabaseName : evtdb UserName : sa TablePrefix : evt_ ShowEventsForTime : TWO_WEEKS ClassifyEventsAsNewForDays : 2
Horizon Console でも、画面を更新するとイベント データベースの構成が確認できます。
そして、データベースに以前のイベント情報が格納されている場合は表示されます。
イベントデータベースの構成をクリア(切断)する場合は、Clear-HVEventDatabase を実行します。
PS C:\Users\user01> Clear-HVEventDatabase -Confirm:$false
2. PostgreSQL への接続
PostgreSQL のデータベースに接続してみます。DatabaseType は「POSTGRESQL」を指定します。
$pass = "VMware1!" | ConvertTo-SecureString -AsPlainText -Force Set-HVEventDatabase ` -ServerName "192.168.80.51" ` -DatabaseType "POSTGRESQL" ` -DatabasePort 5432 ` -DatabaseName "postgres" ` -UserName "postgres" ` -password $pass ` -TablePrefix "evt81_"
イベント データベースが構成されました。
表示されるイベント情報も切り替わりました。このデータベースは再構築したものなので、まだイベントは1件だけです。
イベント データベースの構成をクリアしておきます。
PS C:\Users\user01> Clear-HVEventDatabase -Confirm:$false
3. Oracle Database への接続
Oracle Database のデータベースに接続してみます。DatabaseType は「ORACLE」を指定します。以前の 投稿 で設定したように、Oracle のリスナー設定を変更した上で、DatabaseName には Oracle SID ではなく PDB の名前(XEPDB1)を指定しています。
$pass = "VMware1!" | ConvertTo-SecureString -AsPlainText -Force Set-HVEventDatabase ` -ServerName "192.168.80.52" ` -DatabaseType "ORACLE" ` -DatabasePort 1521 ` -DatabaseName "XEPDB1" ` -UserName "horizon" ` -password $pass ` -TablePrefix "evt_"
イベント データベースが構成されました。
そして、イベント情報も切り替わりました。
イベント データベースの構成をクリアしておきます。
PS C:\Users\user01> Clear-HVEventDatabase -Confirm:$false
このように、工夫すると検証環境などでイベント データベースを切り替えて利用できそうかなと思います。
以上、PowerCLI で Horizon イベント データベースを構成してみる話でした。