局部的に有用なネタかも知れませぬ。

vSphere の Web Client Server は 3rd Party による拡張が可能になっています。

実際にはほとんどの Web Client 機能が、プラグインを使って実装されています。例えば

  • vCenter/vRealize Orchestrator 用 UI
  • Update Manager 用 UI
  • SRM 用 UI
  • Big Data Extensions 用 UI
  • etc. etc.

といったところは全て Plugin となっています。

SDK のセットアップ手順で dev-setup.sh を VCSA (vCenter Server Appliance) で実行させる手順があるのですが、改行コードにより手順通りに実行できないところがあります。

dev-setup.sh をそのまま vCenter Server Appliance で実行すると

    localhost:~/tmp # ./dev-setup.sh
    -bash: ./dev-setup.sh: /bin/bash^M: bad interpreter: そのようなファイルやディレクトリはありません
    localhost:~/tmp #

ということで改行コードが腐っているのがわかります。*.sh と Unix で使うファイルを何故 CRLF で保存しやがるのかと。

    localhost:~/tmp # cat dev-setup.sh  | tr -d '\r' > hoge.sh
    localhost:~/tmp # sh hoge.sh
    Generating store.jks file...
    別名vsphere-webclientのエントリのインポートに成功しました。
    インポート・コマンドが完了しました: 1件のエントリのインポートが成功しました。0件のエントリのインポートが失敗したか取り消されました
    証明書がキーストアに追加されました
    Generating webclient.properties file...
    ERROR: DNS name not found! You will need to fix cm.url in webclient.properties
    Done.
    localhost:~/tmp #

最後に DNS エラーが出ていますが、この vCenter Server Appliance にホスト名が設定されていないことで、CM (Component Manager) の URL が webclient.properties に設定されないだけです。後から追加すれば問題ありません。

これから 1 ヶ月でエイプリルフール ネタを仕込まねば!