まとめ

  • このエントリは Embedded (PSC: Platform Service Controller と vCenter Server が同居) のケースを取り扱う
  • 仮想アプライアンス版 vCenter Server 6.0 の OVA ファイルの実体は ISO ファイル VMware-VCSA-all-6.0.0-xxxxxxx.iso の中の VMware VCSA¥vcsa¥vmware-vcsa
  • ovftool.exe を使って vmware-vcsa がデプロイされる
  • 既存の vCenter Server にvmware-vcsa をデプロイする際は、デプロイ方式に従った OVF パラメータのみを入力すれば良い
  • ドキュメントに記述がないので転んでも泣かない

はじめに

仮想アプライアンス vCenter Server のデプロイは、ESXi のみしかない環境でもデプロイできるようにと 6.0 からブラウザ越しに行うようになりました。しかし、Nested な検証環境を作成する際などに、OVF ファイルを指定して直接 既存の vCenter Server にインストールしたい場合があります。

その際、以下のことに躓きます。

  • vCenter Server 5.5 の頃のように OVF/OVA ファイルがない
  • OVF デプロイ時のパラメータがやたらと多く、何処に何を設定すれば良いか分からない

本エントリでは、Embedded (PSC: Platform Service Controller と vCenter Server が同居) 且つ、Embedded DB でのデプロイで、これらの問題をくぐり抜けていきます。

OVF/OVA ファイルがない

vCenter Server 5.5 までは VMware のダウンロード ページから、仮想アプライアンス版の OVF/OVA ファイルのダウンロード リンクがありました。しかし、vCenter Server 6.0 からは OVF/OVA ファイルへのリンクがありません。その代わり仮想アプライアンス用の VMware-VCSA-all-6.0.0-xxxxxxx.iso のダウンロードが可能になっています。

ところが、この VMware-VCSA-all-6.0.0-xxxxxxx.iso の中にも OVF/OVA ファイルだろうと思われる *.ovf や *.ova が見当たりません。勘の良い方は直ぐに分かると思いますが、1.8GB を超えるサイズの \vcsa\vmware-vcsa が OVA ファイルそのものとなります。

OVF デプロイ時のパラメータ

vmware-vcsa を vSphere Web Client でデプロイしようとすると、テンプレートのカスタマイズ パラメータが膨大なことに面食らいます。

Category # of params
Networking Configuration 8
SSO Configuration 5
Database Configuration 7
System Configuration 6
Upgrade Configuration 12
Miscellaneous 3
Networking Properties 4
Total 45

さらにネットワーク設定として Networking Configuration と Network Properties が被っているように見えたりとカオスになっています。この辺は特にドキュメントもないため、実際の動作の裏側を探っていきます。

正規の方法でデプロイするときには、VMware-VCSA-all-6.0.0-xxxxxxx.iso の \vcsa-setup.html をブラウザで開き、ウィザードに従ってデプロイします。このデプロイしている最中の、デプロイを実行しているプロセスがあるならば、そのプロセスの引数、あるいは、環境変数に必要なパラメータが全て入っているのではないかと予測します。

ここで Process HackerProcess Explorer を使うと、プロセスの詳細を見るとブラウザの子プロセスとして ovftool.exe が起動していることを確認できます。

以下は、Process Hacker で確認したプロセスのコマンド ラインですが、適度に改行して可読性を上げています。

注) WordPress の仕様で ¥ が一部消えています

"C:Program Files (x86)VMwareClient Integration Plug-in 6.0ovftool.exe"
     "--machineOutput"
     "--decodeBase64"
     "--I:morefArgs"
     "--acceptAllEulas"
     "--powerOn"
     "--allowExtraConfig"
     "--X:injectOvfEnv"
     "--X:waitForIp"
     "--sourceType=T1ZB" 
     "--X:logFile=QzpcVXNlcnNcTWl0c3V0YWthXEFwcERhdGFcTG9jYWxcVk13YXJlXENJUFx2Y3NhSW5zdGFsbGVyXHNlc3Npb25zXHNlc3Npb25fMDAwM1xsb2dzXG92ZnRvb2wubG9n"
     "--X:logLevel=dmVyYm9zZQ=="
     "--diskMode=dGhpbg=="
     "--name=dmMtbC0wMWFh"
     "--prop:guestinfo.cis.deployment.node.type=ZW1iZWRkZWQ="
     "--datastore=dmltLkRhdGFzdG9yZTo1MzhlYzRjZC1mZDZmNTdhZS1mZWM4LTAwMjU5MDYxM2M0ZQ=="
     "--deploymentOption=dGlueQ=="
     "--prop:guestinfo.cis.appliance.ssh.enabled=dHJ1ZQ=="
     "--prop:guestinfo.cis.appliance.root.passwd=Vk13YXJlMSE="
     "--prop:guestinfo.cis.vmdir.password=Vk13YXJlMSE="
     "--prop:guestinfo.cis.vmdir.domain-name=dnNwaGVyZS5sb2NhbA=="
     "--prop:guestinfo.cis.vmdir.site-name=Rmlyc3QtU2l0ZQ=="
     "--prop:guestinfo.cis.db.type=ZW1iZWRkZWQ="
     "--net:Network 1=dmltLk5ldHdvcms6SGFOZXR3b3JrLVZNIE5ldHdvcms="
     "--prop:guestinfo.cis.appliance.net.addr.family=aXB2NA=="
     "--prop:guestinfo.cis.appliance.net.mode=c3RhdGlj"
     "--prop:guestinfo.cis.appliance.net.pnid=dmMtbC0wMWEuY29ycC5sb2NhbA=="
     "--prop:guestinfo.cis.appliance.net.addr=MTkyLjE2OC4xMTAuMTE="
     "--prop:guestinfo.cis.appliance.net.prefix=MjQ="
     "--prop:guestinfo.cis.appliance.net.dns.servers=MTkyLjE2OC4xMTAuMQ=="
     "--prop:guestinfo.cis.appliance.net.gateway=MTkyLjE2OC4xMTAuMjU0"
     "--prop:guestinfo.cis.appliance.time.tools-sync=dHJ1ZQ=="
     "--prop:guestinfo.cis.clientlocale=amE="
     "--targetSSLThumbprint=QkY6NEI6QjA6NjU6Q0Q6QzA6QkM6N0E6OTQ6ODA6OUY6NEI6MjU6QTM6RDM6QzY6NDQ6RjI6RkU6QTM=" "Ly9FOi92Y3NhL3Ztd2FyZS12Y3Nh" "dmk6Ly9yb290QGVzeGktMDFzcA=="

各パラメータの値がエンコードされており、分かりにくいですが 2 つ目の引数 (–decodeBase64) にあるように Base64 となっています。これをデコードすると、以下のようになります。

注) WordPress の仕様で ¥ が一部消えています

"C:Program Files (x86)VMwareClient Integration Plug-in 6.0ovftool.exe"
     "--machineOutput"
     "--decodeBase64"
     "--I:morefArgs"
     "--acceptAllEulas"
     "--powerOn"
     "--allowExtraConfig"
     "--X:injectOvfEnv"
     "--X:waitForIp"
     "--sourceType=T1ZB"
     "--X:logFile=C:UsersMitsutakaAppDataLocalVMwareCIPvcsaInstallersessionssession_0003logsovftool.log"
     "--X:logLevel=verbose"
     "--diskMode=thin"
     "--name=vc-l-01a"
     "--prop:guestinfo.cis.deployment.node.type=embedded"
     "--datastore=vim.Datastore:538ec4cd-fd6f57ae-fec8-002590613c4e"
     "--deploymentOption=tiny"
     "--prop:guestinfo.cis.appliance.ssh.enabled=true"
     "--prop:guestinfo.cis.appliance.root.passwd=VMware1!"
     "--prop:guestinfo.cis.vmdir.password=VMware1!"
     "--prop:guestinfo.cis.vmdir.domain-name=vsphere.local"
     "--prop:guestinfo.cis.vmdir.site-name=First-Site"
     "--prop:guestinfo.cis.db.type=embedded"
     "--net:Network 1=vim.Network:HaNetwork-VM Network"
     "--prop:guestinfo.cis.appliance.net.addr.family=ipv4"
     "--prop:guestinfo.cis.appliance.net.mode=static"
     "--prop:guestinfo.cis.appliance.net.pnid=vc-l-01a.corp.local"
     "--prop:guestinfo.cis.appliance.net.addr=192.168.110.11"
     "--prop:guestinfo.cis.appliance.net.prefix=24"
     "--prop:guestinfo.cis.appliance.net.dns.servers=192.168.110.1"
     "--prop:guestinfo.cis.appliance.net.gateway=192.168.110.254"
     "--prop:guestinfo.cis.appliance.time.tools-sync=true"
     "--prop:guestinfo.cis.clientlocale=ja"
     "--targetSSLThumbprint=BF:4B:B0:65:CD:C0:BC:7A:94:80:9F:4B:25:A3:D3:C6:44:F2:FE:A3" "//E:/vcsa/vmware-vcsa" "vi://root@esxi-01sp"

–prop で始まるパラメーターが、OVF に必要なパラメーターとなります。

デプロイ中に、デプロイ先の ESXi の /var/log/hostd.log を tail -f すると非常に生々しい挙動を伺えます…

上記コマンドラインの –prop で始まるパラメーターをカテゴリ別にピックアップしてします。

System Configuration

OvfTool Parameter Name Value vApp Parameter Name
guestinfo.cis.deployment.node.type embedded N/A
guestinfo.cis.appliance.ssh.enabled true SSH Enabled
guestinfo.cis.appliance.root.passwd VMware1! Root Password
guestinfo.cis.appliance.time.tools-sync true Tools-based Time Synchronization Enabled

SSO Configuration

OvfTool Parameter Name Value vApp Parameter Name
guestinfo.cis.vmdir.password VMware1! Directory Password
guestinfo.cis.vmdir.domain-name vsphere.local Site Name

Database Configuration

OvfTool Parameter Name Value vApp Parameter Name
guestinfo.cis.db.type embeded Database Type

Networking Configuration

OvfTool Parameter Name Value vApp Parameter Name
guestinfo.cis.appliance.net.addr.family ipv4 Host Network IP Address Family
guestinfo.cis.appliance.net.mode static Host Network Mode
guestinfo.cis.appliance.net.pnid vc-l-01a.corp.local Host Network Identity
guestinfo.cis.appliance.net.addr 192.168.110.11 Host Network IP Address
guestinfo.cis.appliance.net.prefix 24 Host Network Prefix
guestinfo.cis.appliance.net.dns.servers 192.168.110.1 Host Network DNS Servers
guestinfo.cis.appliance.net.gateway 192.168.110.254 Host Network Default Gateway

vCenter Server の OVA ファイルをデプロイする際に、上記のパラメータを適切に入れれば良いのですが、guestinfo.cis.deployment.node.type はデプロイ時のパラメーターに表示されません。デフォルトでは embedded の値を取るため、今回の用途 (PSC と vCenter Server が同居) では問題ありません。もし変更したい場合は、デプロイ後、仮想マシンの設定から

vApp オプション > オーサリング > プロパティ

と辿り、gustinfo.cis.deployment.node.type を “ユーザーが構成可能” とするか、デフォルト値を変更して下さい。

上記のパラメーターを入力しデプロイし、仮想マシンを Power On すると長時間待つことになりますが仮想アプライアンス版の vCenter Server が起動してきます。

サポートされるのか ?

動くこととサポートされることは異なります。特にこの vCenter Server のデプロイに関して言えば、仮想アプライアンス起動後の初期処理方法が マニュアルに記載されている正規の方法と全く異なるので、議論の余地もなくサポートされないことが明白です。

以下の場合はサポートされない、という大前提を踏まえると商用ソフトウェアと付き合いやすくなります。

  • マニュアルにない
  • KB (Knowledge Base) にない
  • サポートから指示されない

いや、サイジングはどうすんのよ ? といったベンダーとしても悩ましい話は多分にあります…ハイ

長時間の稼働テスト、パフォーマンス テストなど商用ソフトウェア ベンダそれぞれの品質基準を通過した後に出荷されサポートるので、“なんか動いた” といってもサポートはされないのです。

チート

  • 仮想アプライアンス版の OVA ファイルは VMware-VCSA-all-6.0.0-xxxxxxxx.iso の \vcsa\vmware-vcsa
  • OVA ファイルをデプロイする際は、以下のパラメーター (値は参考) を指定
OvfTool Parameter Name Value vApp Parameter Name
guestinfo.cis.deployment.node.type embedded N/A
guestinfo.cis.appliance.ssh.enabled true SSH Enabled
guestinfo.cis.appliance.root.passwd VMware1! Root Password
guestinfo.cis.appliance.time.tools-sync true Tools-based Time Synchronization Enabled
guestinfo.cis.vmdir.password VMware1! Directory Password
guestinfo.cis.vmdir.domain-name vsphere.local Site Name
guestinfo.cis.db.type embeded Database Type
guestinfo.cis.appliance.net.addr.family ipv4 Host Network IP Address Family
guestinfo.cis.appliance.net.mode static Host Network Mode
guestinfo.cis.appliance.net.pnid vc-l-01a.corp.local Host Network Identity
guestinfo.cis.appliance.net.addr 192.168.110.11 Host Network IP Address
guestinfo.cis.appliance.net.prefix 24 Host Network Prefix
guestinfo.cis.appliance.net.dns.servers 192.168.110.1 Host Network DNS Servers
guestinfo.cis.appliance.net.gateway 192.168.110.254 Host Network Default Gateway
  • guestinfo.cis.deployment.node.type は隠しパラメーターとなっているので、デプロイ後に仮想マシンの設定から変更する
  • 転んでも泣かない環境で !!

参考