Flings と Onyx

VMware R&D で開発された製品予備軍や社員による便利ツールを提供するサイトとして Flings があります。すでに運用されて 6 年以上経つので、掲載されているソフトウェアも相当な数に上っています。中でも vSphere Client で行った操作を PowerCLI、vRealize Orchestrator Script として出力する Onyx は、日本でもかなりの数のユーザーが利用していたのではないかと思います。

Onyx for the Web Client の登場

しかしながら、vSphere Web Client Server の登場と、それに伴う vSphere Client の機能追加の停止により、Onyx が時代遅れになってしまったのも事実です。

vSphere Client は vCenter Server (vpxd) に対し SOAP を発行することにより、UI での操作を実現しています。Onyx は、vSphere Client と vCenter Server との間で Proxy として動作し、全ての SOAP の Request/Response を解析することにより、PowerCLI などのスクリプトを生成しています。そのため、vSphere Client が発行できる SOAP/UI で行える操作のうち、Onyx が解析できる以外の処理はスクリプト化することが出来ません。つまり、vSphere Client からは行えず vSphere Web Client からしか実行できない操作は Onyx でスクリプトを生成することが出来ません。

対して vSphere Web Client Server は、vCenter Server と SOAP で通信し、vSphere Web Client Server とユーザー側のブラウザの Flash ランタイムは BlazeDS で通信するという構成を取っています。無理筋ではありますが、vSphere Web Client と vCenter Server の間に Onyx を Proxy として挿入することも考えられます。しかし、vSphere Web Client と vCenter Server を分散配置しなければならないことと、Onyx を永続的に配置しなければならなくなることから、相当に手間が掛かり現実的ではありません。

R&D もこの問題を認識しており、登場したのが Onyx for the Web Client になります。Proxy としての実装は難しいため、vSphere Web Client Server のライブラリを改変することで実装しています。vSphere Web Client Server が vCenter Server に発行する SOAP 呼び出しモジュール (vim-commons-.jar, vim-commons-vsphere-.jar) を改変して、SOAP 呼び出しを抜き取ります。その情報を vSphere Web Client Server の Plugin として実装された Onyx UI で表示しています。

注意

vSphere Web Clinet Server のプラグインではありますが、製品に含まれる jar ファイルを入れ替えるというワイルドな実装となっているため、本番環境への適用は全く推奨出来ません。実験環境などでお試しするのが良いと考えます。

また、SOAP 呼び出しの jar ファイルを差し替えるため、vCenter Server のバージョン・アップデートの違いに非常に敏感です。必ず vCenter Server のバージョン・アップデートと Onyx for the Web Client のバージョン・アップデートとを揃えるようにしてください。SOAP - vSphere Web Services API はアップデートリリースでも変更がある事があるためです。例えば、vCenter Server 6.0.0 U2 に Onyx for the Web Client 6.0.0 U1 をインストールすると、vSphere Web Client Server が起動直後に停止します。

Onyx for the Web Client 6.0.0 U2 ??

では、vCenter Server 6.0.0 U2 対応は いつになるのかという事ですが、作者の余力次第なところが。どうしても !、という場合は Onyx for the Web Client の Feedback に、応援、皆様の苦境、製品への統合希望などのコメントを是非 !

使い方

付属の PDF のインストールガイドと Video もあり出来が非常に良いので、ここでは割愛します。

Happy PowerCLI Life!!