VMware ESXiの仮想ゲストをOVAファイルにExportしてみる

PowerShell Script

この記事では、ESXiの仮想ゲストクライアントマシンからovftool.exeを実行し、ovaファイルにExportするコマンドを説明します。PowerShellのスクリプトファイル(.ps1)として作成し、利用することもおすすめです。ぜひご活用ください。

前提条件

OVF Toolは、OVF(Open Virtualization Format)およびOVA(Open Virtual Appliance)形式の仮想マシンのインポートおよびエクスポートを行うためのツールです。使うにはクライアントマシンにインストールする必要があります。

Open Virtualization Format (OVF) Tool - 4.6.2
4.6.2

OVA形式にExport

"C:\Program Files\VMware\VMware OVF Tool\ovftool" --X:logFile=C:\temp\testvm-001\vmwarelinux8.log --X:logLevel=verbose --noImageFiles vi://root:password@192.168.1.20/vmwarelinux8 C:\temp\testvm-001\vmwarelinux8.ova

2024/08/19 14:59:21 Running ovftool for vmwarelinux8 with VM name testvm-001
Directory created: C:\temp\testvm-001
Opening VI source: vi://root@192.168.11.21:443/vmwarelinux8
Opening OVA target: C:\temp\testvm-001\vmwarelinux8.ova
Writing OVA package: C:\temp\testvm-001\vmwarelinux8.ova
Disk progress: 1%
Disk progress: 2%
Disk progress: 3%
…中間省略…
Disk progress: 99%
Transfer Completed                    
Completed successfully
  • –X:logFileは、ログファイルの保存場所を指定します。
  • –X:logLevelは、ログの詳細度を「verbose(詳細)」に設定します。
  • –noImageFilesは、ディスクイメージファイルを含めないオプションです。
  • vi://は、vSphere(VMwareの仮想化プラットフォーム)を指定するプロトコルです。
  • root:password@192.168.1.20は、ESXiサーバーのIPアドレスと認証情報です。
  • vmwarelinux8はエクスポートする仮想マシンの表示名です。

補足

仮想マシンの表示名がvmwarelinux8のような英数字ではなく、”仮想リナックス8“のような全角文字が含まれている場合、Powershellにて以下のよう変換を掛けた値を使用します。

PS> [System.Uri]::EscapeDataString("仮想リナックス8")
%E4%BB%AE%E6%83%B3%E3%83%AA%E3%83%8A%E3%83%83%E3%82%AF%E3%82%B98

以下はその例です。

"C:\Program Files\VMware\VMware OVF Tool\ovftool" --X:logFile=C:\temp\testvm-001\export.log --X:logLevel=verbose --noImageFiles vi://root:password@192.168.1.20/%E4%BB%AE%E6%83%B3%E3%83%AA%E3%83%8A%E3%83%83%E3%82%AF%E3%82%B98 C:\temp\testvm-001\vmwarelinux8.ova

なお、以下のようなPowerShell Scriptを作成すると複数の仮想ゲストをOVAファイルとしてExport可能です。

$CSVFILE = "vmguest_name_list.csv"
foreach ($line in Get-Content $CSVFILE) {
  ##ここにOVAファイルExport用コマンドを挿入
}

以下はvmguest_name_list.csvの例です。

仮想マシンの表示名,Exportファイルフルパス,Exportログフルパス
vmlinux6-guest,C:\temp\linux6\guest.ova,C:\temp\linux6\export.log
vmlinux7-guest,C:\temp\linux7\guest.ova,C:\temp\linux7\export.log
vmlinux8-guest,C:\temp\linux8\guest.ova,C:\temp\linux8\export.log
vmlinux9-guest,C:\temp\linux9\guest.ova,C:\temp\linux9\export.log

タイトルとURLをコピーしました