vHoge

VMwareのアレコレ備忘録。CLIでがんばるネタ多め。

Portability of OVF Tool

OVF Tool とは

OVF のエクスポートやデプロイを CLI から行うツールで、
Windows / Mac / Linux 版が配布されており、 My VMware より無償で入手できる。
https://www.vmware.com/support/developer/ovf/

Linux(CLI) 環境での作業が多い自分としては欠かせないツールの一つ。
これの使い方アレコレで色々書けるが、その前に実行バイナリの配備についてのネタ。

Installation...

OVF Tool ですが、配布が上記の公式サイトのみでインストーラ形式での配布となっている。
OVF Toolの配布
Linux の .bundle は 500 行程度のシェルスクリプトヘッダ + アーカイブ?のバイナリ。
  offset 計算とかして切り出して実行とかやっているっぽい。

で、このインストールが root 権限を求めてきたり…

% ./VMware-ovftool-4.3.0-7948156-lin.x86_64.bundle --console
Extracting VMware Installer...done.
root access is required for the operations you have chosen.

/usr/bin/usr/lib下にインストールを行ったり…

% sudo ./VMware-ovftool-4.3.0-7948156-lin.x86_64.bundle --console --eulas-agreed
Extracting VMware Installer...done.
The product is ready to be installed.  Press Enter to begin
installation or Ctrl-C to cancel.

Installing VMware OVF Tool component for Linux 4.3.0
    Configuring...
[######################################################################] 100%
Installation was successful.
% sudo find /* -name "*ovftool*"
/etc/vmware-installer/components/vmware-ovftool
/etc/vmware-installer/components/vmware-ovftool/4.3.0/vmware-ovftool.pyc
/etc/vmware-installer/components/vmware-ovftool/4.3.0/vmware-ovftool.py
/usr/lib/vmware-ovftool
/usr/lib/vmware-ovftool/ovftool
/usr/lib/vmware-ovftool/ovftool.bin
/usr/lib/vmware-ovftool/env/ovftool-hw14-config-option.xml
/usr/lib/vmware-ovftool/env/ovftool-hw11-config-option.xml
/usr/lib/vmware-ovftool/env/ovftool-hw8-config-option.xml
/usr/lib/vmware-ovftool/env/ovftool-hw12-config-option.xml
/usr/lib/vmware-ovftool/env/ovftool-hw4-config-option.xml
/usr/lib/vmware-ovftool/env/ovftool-hw7-config-option.xml
/usr/lib/vmware-ovftool/env/ovftool-hw3-config-option.xml
/usr/lib/vmware-ovftool/env/ovftool-hw10-config-option.xml
/usr/lib/vmware-ovftool/env/en/ovftool.vmsg
/usr/lib/vmware-ovftool/env/en/ovftool-warning.vmsg
/usr/lib/vmware-ovftool/env/ovftool-hw9-config-option.xml
/usr/lib/vmware-ovftool/env/ovftool-hw13-config-option.xml
/usr/bin/ovftool

rpmdebでは無く、vmware-installerという個別のパッケージ管理(?)だったり…
どうしても環境を汚してしまう一品。

一応インストール先は-pオプションで指定できるが、
vmware-installerの残骸周りを/etcの下に残してしまう。

本当に必要なもの

インストーラでどうのこのと仰々しいが、実は本当に必要なものは
/usr/lib/vmware-ovftool下一式のみ。
なので、実はそこだけ持っていけば動く。
試しにインストールしたホストとは違うホストへscpする。

% scp -r user@InstalledHost:/usr/lib/vmware-ovftool ./

動作確認として Photon OSOVA をデプロイしてみる。

% vmware-ovftool/ovftool -ds=datastore-hdd -dm=thin -nw="None=VM Network" -n="Photon01" --powerOn --noSSLVerify --acceptAllEulas photon-hw11-3.0-26156e2.ova vi://administrator@vsphere.local:hogehoge@192.168.0.50/home01/host/cls01/192.168.0.51
Opening OVA source: photon-hw11-3.0-26156e2.ova
The manifest validates
Source is signed and the certificate validates
Opening VI target: vi://administrator%40vsphere.local@192.168.0.50:443/home01/host/cls01/192.168.0.51
Deploying to VI: vi://administrator%40vsphere.local@192.168.0.50:443/home01/host/cls01/192.168.0.51
Transfer Completed
Powering on VM: Photon01
Task Completed
Completed successfully

問題なくデプロイまで完了。
どこかのホストにインストールだけして、そこから抜き出せばいい感じ。

Windows 版は…

インストーラ
これもインストール自体は求められるが、同じ要領でいけそうか?
手元に Windows 環境複数は無いので、ひとまず違う場所にコピーしてみる。

C:\>XCOPY "C:\Program Files\VMware\VMware OVF Tool" "D:\VMware OVF Tool" /s
D:\VMware OVF Tool は受け側のファイル名ですか、
またはディレクトリ名ですか
(F= ファイル、D= ディレクトリ)? D
VMware OVF Tool\expat.dll
VMware OVF Tool\googleurl.dll
VMware OVF Tool\icudt58.dll
VMware OVF Tool\icuuc58.dll
VMware OVF Tool\libcurl.dll
VMware OVF Tool\libeay32.dll
VMware OVF Tool\open_source_licenses.txt
VMware OVF Tool\ovftool.exe
VMware OVF Tool\README.txt
VMware OVF Tool\ssleay32.dll
VMware OVF Tool\ssoclient.dll
VMware OVF Tool\vim-types.dll
VMware OVF Tool\vmacore.dll
VMware OVF Tool\vmomi.dll
VMware OVF Tool\vmware-eula.rtf
VMware OVF Tool\vmware.eula
VMware OVF Tool\xerces-c_3_1.dll
VMware OVF Tool\zlib1.dll
VMware OVF Tool\env\defloc.vlcl
VMware OVF Tool\env\iso2psx.vlcl
VMware OVF Tool\env\iso2win.vlcl
VMware OVF Tool\env\isodata.vlcl
VMware OVF Tool\env\loc2iso.vlcl
VMware OVF Tool\env\ovftool-hw10-config-option.xml
VMware OVF Tool\env\ovftool-hw11-config-option.xml
VMware OVF Tool\env\ovftool-hw12-config-option.xml
VMware OVF Tool\env\ovftool-hw13-config-option.xml
VMware OVF Tool\env\ovftool-hw14-config-option.xml
VMware OVF Tool\env\ovftool-hw3-config-option.xml
VMware OVF Tool\env\ovftool-hw4-config-option.xml
VMware OVF Tool\env\ovftool-hw7-config-option.xml
VMware OVF Tool\env\ovftool-hw8-config-option.xml
VMware OVF Tool\env\ovftool-hw9-config-option.xml
VMware OVF Tool\env\en\action.vmsg
VMware OVF Tool\env\en\alarm.vmsg
VMware OVF Tool\env\en\auth.vmsg
VMware OVF Tool\env\en\cluster.vmsg
VMware OVF Tool\env\en\default.vmsg
VMware OVF Tool\env\en\enum.vmsg
VMware OVF Tool\env\en\evc.vmsg
VMware OVF Tool\env\en\event.vmsg
VMware OVF Tool\env\en\eventaux.vmsg
VMware OVF Tool\env\en\fault.vmsg
VMware OVF Tool\env\en\gos.vmsg
VMware OVF Tool\env\en\host.vmsg
VMware OVF Tool\env\en\locmsg.vmsg
VMware OVF Tool\env\en\option.vmsg
VMware OVF Tool\env\en\ovftool-warning.vmsg
VMware OVF Tool\env\en\ovftool.vmsg
VMware OVF Tool\env\en\perf.vmsg
VMware OVF Tool\env\en\question.vmsg
VMware OVF Tool\env\en\stask.vmsg
VMware OVF Tool\env\en\task.vmsg
VMware OVF Tool\env\en\vm.vmsg
VMware OVF Tool\schemas\DMTF\CIM_ResourceAllocationSettingData.xsd
VMware OVF Tool\schemas\DMTF\CIM_VirtualSystemSettingData.xsd
VMware OVF Tool\schemas\DMTF\common.xsd
VMware OVF Tool\schemas\DMTF\dsp8023.xsd
VMware OVF Tool\schemas\DMTF\dsp8027.xsd
VMware OVF Tool\schemas\DMTF\xml.xsd
VMware OVF Tool\schemas\vmware\ovf-vmware.xsd
VMware OVF Tool\schemas\vmware\ovfenv-vmware.xsd
62 個のファイルをコピーしました

コピー終わったら元の本体はアンインスール。
再び OVA デプロイ実験。

D:\VMware OVF Tool>ovftool.exe -ds="datastore-hdd" -dm=Thin -nw="None=VM Network" -n="Photon02" --powerOn --noSSLVerify --acceptAllEulas D:\photon-hw11-3.0-26156e2.ova vi://administrator@vsphere.local:hogehoge@192.168.0.50/home01/host/cls01/192.168.0.51
Opening OVA source: D:\photon-hw11-3.0-26156e2.ova
The manifest validates
Source is signed and the certificate validates
Opening VI target: vi://administrator%40vsphere.local@192.168.0.50:443/home01/host/cls01/192.168.0.51
Deploying to VI: vi://administrator%40vsphere.local@192.168.0.50:443/home01/host/cls01/192.168.0.51
Transfer Completed
Powering on VM: Photon02
Task Completed
Completed successfully

いける。
こちらもどこかの Windows を犠牲にインストール先ディレクトリだけ持っていけば良さげ。

Mac

試せる環境ないので割愛。
Linux 版と同じ感じでいけそうな気はする。

邪道?な技

実はわざわざどこかにインストールとかしなくても入手する方法がある。
それは vCenter Server Appliance 6.0 の ISO イメージ。

% sudo mount -t iso9660 -o loop /tmp/VMware-VCSA-all-6.0.0-9451619.iso /mnt/cdrom 
mount: /mnt/cdrom: WARNING: device write-protected, mounted read-only.
% find /mnt/cdrom/vcsa-cli-installer/ -name ovftool
./lin64/ovftool
./lin64/ovftool/ovftool
./mac/VMware OVF Tool/ovftool
./win32/ovftool

vCSA の VMOVA デプロイ。
そのデプロイ用の OVF Tool がディレクトリで存在しているので、
これを抜き出してもそのまま使える。

残念ながら vCSA 6.5 以降はvcsa-deployのバイナリの中に統合された?らしく、
OVF Tool の一式は無くなっている。