How to deploy vCenter Server 6.0 (Embedded) appliance to vCenter Server
まとめ
- このエントリは 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 Hacker や Process 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 は隠しパラメーターとなっているので、デプロイ後に仮想マシンの設定から変更する
- 転んでも泣かない環境で !!