PowerCLIでOVFをエクスポートする方法

今年は頑張る技術メモシリーズ。

…おっきなサイズのOVFをvSphere Clientでエクスポートすると、ブラウザのファイルサイズ制限に引っかかってコケるんだよ…
だから、なるべくこの辺はPowerCLI使ったほうがいいんだよ…

事前準備

  1. ローカルストレージの空き状況を確認し、空き領域の大きい場所にエクスポート先ディレクトリを作成しておく
  2. エクスポート対象の仮想マシンをシャットダウンしておく
  3. 仮想マシンの「オプションの編集」で、CD/DVDドライブを「クライアントデバイス」に変更しておく※

※注意!

エクスポートする際は、vSphere Client/PowerCLI問わず、必ずCD/DVDドライブが「クライアントデバイス」であることを確認すること!

  • vSpher Client
    • データストアISOマウント状態だとエクスポートエラーになる
      • この時点で修正する
  • PowerCLI
    • エクスポートコマンドに-Forceつけるので、エラーなしにエクスポートできてしまう
      • 同一環境に再インポートなら辛うじて問題なし
      • 別環境にインポートのした際にインポートエラー(大概FileNotFound)が発生する
        • エクスポートやり直し(オチが残念すぎる…)

PowerCLI使用時の流れ

  1. スタートボタンを右クリックし、Windows Powershell(管理者)を実行
  2. vCenterに接続(黄色い文字で警告が出る事があるけど、証明書の警告なので無視してOK)
  3. 対象の仮想マシンがPowerOffになっている事を確認する
  4. OVFエクスポートコマンドを実施
#vCenter接続
Connect-VIServer -User 自分のID -Password 自分のpw -Server vCenterのIP -force

#VMのステータス確認
Get-VM -Name 仮想マシン名

#エクスポート
Get-VM -Name 仮想マシン名 | Export-VApp -Destonation 出力先-Format 出力形式(ovf or ova) -Force

おまけ:ログ保存コマンド

PowerCLIだとログ保存がしにくいので、エビが欲しかったらStart-Transcriptを使ってテキストに吐かせておくのもあり。(もしかしたら今後Windows Terminalなら保存できるようになるかも…?)

#記録開始。同一作業日で複数回ログを保存する場合は、末尾の数字を都度増やす
Start-Transcript -Path c:\work\yyyymmdd-作業者名-01.txt

#記録終了
stop-transcript