vSphere Web Client Plugin SDK の dev-setup.sh スクリプトの改行コード
局部的に有用なネタかも知れませぬ。
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 ヶ月でエイプリルフール ネタを仕込まねば!