1

私はこれをグーグルで検索しようとしましたが、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
    }
}

しかし、これは本当にこれを行うための最もクリーンな方法ですか?

4

1 に答える 1

2

とにかく独自のリポジトリを実行しているので、代わりにこれのdebianパッケージを作成することにしました。

12.04システムのUbuntu12.10でこれを実行します。

手順は次のとおりです。

ルートになります。

sudo su

FPMが必要です。FPMをインストールするにはRubygemsが必要です。

apt-get install rubygems
gem install fpm

そしてこれを実行します:

mkdir -p /opt/vbext
cd /opt/vbext
wget -nv http://download.virtualbox.org/virtualbox/4.2.10/Oracle_VM_VirtualBox_Extension_Pack-4.2.10-84104.vbox-extpack
cat <<EOF> /opt/vbext/installpack
#/bin/bash
VBoxManage extpack install /opt/vbext/Oracle_VM_VirtualBox_Extension_Pack-4.2.10-84104.vbox-extpack --replace
EOF
cat <<EOF> /opt/vbext/removepack
#/bin/bash
vboxmanage extpack uninstall "Oracle VM VirtualBox Extension Pack"
EOF
chmod +x installpack removepack
fpm -t deb -n extpack -v 4.2.10-84104 -d virtualbox-4.2 --after-install installpack --after-remove removepack -s dir /opt/vbext/

これで、きちんとパッケージ化されたdebianパッケージができました。

ls /opt/vbext/*.deb
extpack_4.2.10-84104_amd64.deb

FPMはスクリプトのテンプレート化をサポートしていますが、今はそれを入れるのが面倒です。

于 2013-03-19T12:18:14.410 に答える