HTML5 Console Access from Windows PC (Done)


前のエントリーで実現しきれなかった、Windows PC からの HTML5 コンソールへのアクセスが実現できましたのでご報告。

原因は、チケットを vCenter の CloneTicket としなければならないところを、仮想マシンの MKS Ticket としていたためです。CloneTicket は、現在のセッションと同じユーザーで vCenter にログインすることができる 短時間のみ有効、かつ、1 回だけ使用可能なチケットです (参考)。チケットの “cst-VCT-” を見たときに、「どこかで見た文字列だな」とは思っていたのですが、3 年以上前のお仕事で CloneTicket を使ったときのモノでした。

MKS チケットはコンソールを開くためには必要な手続きなので、vCenter 側の Jetty 内部で使われていると思われます。Jetty から CloneTicket で vCenter にログインし、仮想マシンへの操作権限を確認しているんではないかと。

なお、VMware の Technical Marketing Engineer の William Lam 氏が 1 年前にすでに Blog で実現されていました。

修正した PowerCLI スクリプトは以下になります。

1-2 行目: vCenter のホスト名と証明書の Thumbprint です。Thumbprint は PowerCLI では取れないようなので、どうしても Script で実現したいときは [Net.WebRequest] などを駆使してみるといいかもしれません
4-5 行目: PowerCLI の Snapin を追加し、vCenter に接続しています。
7 行目: 仮想マシン polaris のオブジェクト ID を取得しています。
9-11 行目: 今回の肝です。URL に渡すチケットは vCenter のログイン セッションの情報をクローンしたチケットです。SessionManager の AcquireCloneTicket() から取得します。
13-20 行目: URL を生成し、ブラウザーを起動します。
22 行目: vCenter への接続を切断します

もう少し気軽に HTML5 コンソールが利用できると良いのですが。

コメントを残す