2016-11-15 17 views
0

仮想マシン(VirtualBox)をOVA/OVFアプライアンスに作成(エクスポート)する必要があります。VirtualBoxマシンをPythonを使用してOVAアプライアンスにエクスポートするにはどうすればよいですか?

私はこのような(pyvboxラッパー経由)IMachine.export_to()メソッドを使用しようとしました:

import virtualbox 
from virtualbox.library import ExportOptions 


vbox = virtualbox.VirtualBox() 
vm = vbox.find_machine(VM_NAME) 

appliance = vbox.create_appliance() 
p = appliance.write('ovf-2.0', 
        [ExportOptions.create_manifest], 
        '~/tmp/test5.ovf') 
desc = slredmine.export_to(appliance, '~/tmp/test5.ovf') 

上記のコードは、私がやりたいことはありません。何OVA/OVFは作成されません。

UPDATE

命令順序が間違っていました。下記の私の答えを見てください。

+0

を解決しました。また、「卵子」タグは、あなたが思ったものとは異なる何かを意味するようです。 –

答えて

0

は、質問順序変更、およびいくつかのスペルや文法の問題を修正し

import virtualbox 
from virtualbox.library import ExportOptions 

VM_NAME = 'foovmname'  

vbox = virtualbox.VirtualBox() 
vm = vbox.find_machine(VM_NAME) 

appliance = vbox.create_appliance() 
desc = slredmine.export_to(appliance, VM_NAME) 
p = appliance.write('ovf-2.0', 
        [ExportOptions.create_manifest], 
        '~/tmp/test5.ovf') 
0

pyvboxのドキュメントによれば、OVF形式にしかエクスポートできませんが、実際には何をしたいのかによって問題はありません。

文書の引用: 空IApplianceオブジェクトを作成するためのインポート、最初のコールIVirtualBox.create_appliance()と同様に

エクスポートするマシンごとに、作成したばかりのIApplianceオブジェクトを使用してIMachine.export_to() を呼び出します。そのような呼び出しは、アプライアンス内に1つのIVirtualSystemDescriptionインスタンス を作成します。所望であれば

、 IMachine.export_to()ルーチンによって行われた提案を上書きする各 仮想システム(マシン)のためIVirtualSystemDescription.set_final_values()を呼び出します。

最後に、パス指定でwrite()を呼び出して、OVFファイル を記述します。

あなたが困っている場合は、気軽にコードを共有してください。

関連する問題