私はこれをグーグルで検索しようとしましたが、virtualboxでvagrantを使用している人々に5000ヒットを記録しました。
私のvirtualboxにはUSBサポートを必要とするマシンがあるので、拡張パックをインストールする必要があります。
puppetに拡張パックファイルをインストールしてもらう必要があります。
私は現在VirtualBox用にこれを持っています:
class virtualbox(
$ubuntu_release
) {
apt::source { virtualbox:
location => 'http://download.virtualbox.org/virtualbox/debian',
release => $ubuntu_release,
repos => 'contrib',
key => '98AB5139',
key_source => "http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc",
include_src => false,
}
package { virtualbox:
name => 'virtualbox-4.2',
ensure => present,
require => Apt::Source['virtualbox']
}
}
拡張パックをインストールする方法はありますか?execを実行すると、実際にパックをインストールしたかどうか、またはパックがどのバージョンにあるかを確認する方法がないため、再インストールを続行します。また、拡張パックは新しいVirtualBoxバージョンがあるたびに更新されるため、それも更新できる必要があります。
パックをインストールするための現在のコマンドは次のとおりです。
wget -nv http://download.virtualbox.org/virtualbox/4.2.10/Oracle_VM_VirtualBox_Extension_Pack-4.2.10-84104.vbox-extpack -P /tmp && VBoxManage extpack install /tmp/Oracle_VM_VirtualBox_Extension_Pack-4.2.10-84104.vbox-extpack --replace
私はファイルに拡張パックのバージョンを入れるようなことをしようとしました:
class vbox_extension {
$packagever = "4210"
$packagefile = "/var/log/puppet/vbox_extension.ver"
exec { "vboxinst":
command => "wget -nv http://download.virtualbox.org/virtualbox/4.2.10/Oracle_VM_VirtualBox_Extension_Pack-4.2.10-84104.vbox-extpack -P /tmp \
&& VBoxManage extpack install /tmp/Oracle_VM_VirtualBox_Extension_Pack-4.2.10-84104.vbox-extpack --replace \
&& echo \"$packagever\" > \"$packagefile\"",",
unless => "test \"`cat $packagefile 2>/dev/null`\" = \"$packagever\"",
require => virtualbox
}
}
しかし、これは本当にこれを行うための最もクリーンな方法ですか?