こんにちは。VMware TAM の山田です。
9 月 30 日から VMworld 2020 が開催されています。日本のお客様向けには昨年まで vForum として開催していたイベントを VMworld 2020 Japan として 11 月 10 日~ 12 日で開催予定です。VMworld 2020 Japan に登録された方には 10月9日(金) 15:00 – 16:00 に開催予定の VMworld 2020 ダイジェストのウェビナーにも参加できますので、ぜひお早めにご登録ください!
VMworld 2020 Japan への登録はこちら
さて、今回は Horizon PowerCLI モジュールを利用した、スクリプトによる Horizon 7 環境へのアクセス方法をご紹介します。
日頃の Horizon 環境の運用において、スクリプトによるアクセスを実現して運用の自動化や効率化を検討したいという場合に、まずは Horizon 環境にアクセスする準備事項や接続方法について理解いただければと思います。
Horizon PowerCLI モジュールについて
Horizon PowerCLI コマンドレットを利用すると、Horizon Connection Server から様々な情報を取得する事ができます。また、View API (Horizon 環境で利用可能な API) と組み合わせる事で、オープンソース スクリプトを作成する事が可能です。以下の弊社サイトで Horizon PowerCLI 利用時に必要な手順や、Horizon PowerCLI コマンドレットにより実行可能な処理について情報を公開しています。
*Horizon PowerCLI モジュールの使用
https://docs.vmware.com/jp/VMware-Horizon-7/7.12/horizon-integration/GUID-7C7C5239-6990-47E0-B9FB-29EC0EB0F5AC.html
また、Horizon 7 環境でよく利用される関数や作業をパッケージ化したファイルが VMware.Hv.Helper モジュールとして公開されています。本モジュールを組み合わせて利用することでスクリプトを一から作成などする必要がなく、すぐに Horizon 環境の操作が可能となります。
*VMware PowerCLI Community Repository
https://github.com/vmware/PowerCLI-Example-Scripts/tree/master/Modules/VMware.Hv.Helper
事前準備
- PowerShell ギャラリーから VMware PowerCLI をインストールします。VMware PowerCLI をインストールするには、Windows PowerShell プロンプトで次のコマンドを実行します。
Install-Module -Name Vmware.PowerCLI
このコマンドを実行すると、すべての VMware PowerCLI モジュールが Windows PowerShell にインストールされます。VMware PowerCLI は、https://code.vmware.com/web/dp/tool/vmware-powercli からダウンロードしてインストールすることもできます。
- Windows PowerShell セッションで VMware.VimAutomation.HorizonView という名前の Horizon PowerCLI モジュールをインポートします。次のコマンドを使用して、Windows PowerShell セッションに VMware.VimAutomation.HorizonView をインポートします。
Import-Module -Name VMware.VimAutomation.HorizonView
- GitHub のリポジトリから Horizon PowerCLI のサンプル スクリプトをダウンロードします。Horizon PowerCLI モジュールのサンプル スクリプトは、[Modules] セクションで VMware.Hv.Helper モジュールとして提供されています。*VMware.Hv.Helper モジュール は “Code” ボタンより Zip ファイルをダウンロードします。
- $env:PSModulePath コマンドを使用して、モジュールのパスを確認し、その場所に VMware.Hv.Helper モジュールをコピーします。
$env:PSModulePath
上記手順については、以下の弊社ページでも公開しています。
*Horizon PowerCLI モジュールの設定
https://docs.vmware.com/jp/VMware-Horizon-7/7.12/horizon-integration/GUID-0D876863-BD3E-4947-A305-5A2AB7CBD26A.html
*Horizon PowerCLI サンプル スクリプトの実行
https://docs.vmware.com/jp/VMware-Horizon-7/7.12/horizon-integration/GUID-B29EB217-30F0-4C58-9A49-95160392AA9C.html
事前準備の完了後、Horizon PowerCLI コマンドレットをご利用いただけます。
下記は Horizon Connection Server が保持している VDI 接続済セッション数の情報を取得するためのコマンド例です。
Horizon 接続済セッション情報の取得コマンド
Connect-HVServer "Connection Server IP Address or FQDN" //ユーザ名とパスワードの入力を求められます。
$State = Get-HVMachineSummary | Select-Object -ExpandProperty Base | Select-Object BasicState
$Con = ($State.BasicState -eq "CONNECTED").Count
$Con //処理完了後に Disconnect-HVServer で Connection Server から切断します。
なお、セッション数の情報は Horizon Console (Horizon 管理コンソール) からもリアルタイムのセッション数をご確認いただけます。
意図した値を取得できる事が確認できましたら、取得された値のログファイルへの出力や、タスクスケジューラーなどでの定期的な実行を検討する事で、運用の自動化/効率化を検討いただけます。
Horizon PowerCLI や Horizon API で利用できるコマンドレットやについては、以下のページよりご確認いただけます。
*Cmdlet Reference > All Cmdlets
https://code.vmware.com/docs/6978/cmdlet-reference/doc/index-all_cmdlets.html
*View API (Horizon 7.12)
https://code.vmware.com/apis/902/view
まとめ
今回ご紹介した Horizon PowerCLI コマンドレットを利用する事で、Horizon 環境の API (View API) を活用いただけます。
なお、Horizon 7.10 からは RESTfull API を利用した方法も可能です。Microsoft PowerShell に依存しない環境で Horizon 環境に対して同様にスクリプトによる自動化などの対応が可能ですので、ご興味がある方は こちらの記事 (英語) もご参照ください。
以下の英文の Blog では、より詳細な情報やサンプル スクリプトも確認できますので、合わせてご確認ください。
*Automating VMware Horizon 7 with VMware PowerCLI
https://blogs.vmware.com/euc/2020/01/vmware-horizon-7-powercli.html