VMware Horizon PowerCLIモジュールをインストールしてView APIを操作する


ここでは、VMware HorizonのView APIを操作するためにHorizon PowerCLIモジュールをインストールして簡単に操作してみようと思います。

環境

項目 バージョン
vCenter 6.7.0
ESXi 6.7.0
Horizon 7.9.0
View API 7.6.0
Windows Server 2016

Horizon PowerCLIモジュールのインポート

Powershellを管理者権限で立ち上げて Vmware.PowerCLI のインストールを実行します。
もし NuGet がインストールされていない場合は、インストールする必要があるためインストールしてください。(以下を参照)

VMware.VimAutomation.HorizonView をインポートします。

これで View API を操作できる準備が整いました 🙂

View APIの簡単な操作

まずは、イメージを掴むために簡単な例を描いてみます。
以下は、Connection Serverに登録してあるvCenterからVMの一覧を取得してVM名を表示するだけのものです。

上記のフローは

  • Connection Serverにログイン
  • 検索クエリを作成
  • vCenterからVMの一覧取得
  • VMの名前を表示

と言う風になっています。
なので、View APIを触る時は、まず操作または情報を取得するオブジェクトの取得をするためのクエリを書いた後に対象を抜き出しメソッドを実行する形になります。
オブジェクトやメソッドの仕様はAPIドキュメントに書いてあります。
上記ソース例の解説と同時にドキュメントの読み方について簡単に説明してみたいと思います。

View APIドキュメント

https://code.vmware.com/apis/445/view

クエリの実行

まずは、操作・情報を取得するためのオブジェクトを抽出するためのクエリを書く必要があります。
ドキュメントでは Query Service に書いてあります。

ソース例だと、この部分です。

$queryService ではクエリを実行するための VMware.Hv.QueryService オブジェクトを生成しています。
クエリ関連のメソッドを実行する場合は、このオブジェクトを生成します。

$query では VMware.Hv.QueryDefinition オブジェクトを生成しています。
このオブジェクトのプロパティには、検索対象や検索条件を設定することができます。
$query.queryEntityType には検索対象を指定します。
指定できるのは Queryable Data Objects です。

最後にサーバ側で生成された情報を削除しています。

メソッドの実行

Connect-HVServer コマンドレットで問題なくConnection Serverへログインできれば ViewObjectImpl オブジェクトが生成されます。
その中の ExtensionsData プロパティに Service が入っています。
Service にはView API経由で設定を追加・変更・削除・情報の取得をするメソッドが入っています。

ソース例だと、この部分です。

使える Service はドキュメントの Service Types を確認してください。

ソース例だと、Connection Serverに登録してあるvCenterからVM一覧を取得しています。

VM一覧を取得するために実行しているメソッドは VirtualMachine.VirtualMachine_List です。
このメソッドの引数ではvCenterのIDオブジェクトを渡す必要があるので、その前にvCenterのIDを検索結果の summaryData から取得しています。

取得したVM一覧はオブジェクトの配列なのでソース例ではforeachで回してNameプロパティを指定してVM名を表示しています。

簡単にですが、View APIの使い方について説明しました。
ここまで分かってしまえば、後はドキュメントのオブジェクト仕様を見ながら操作できると思います 🙂

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください