Vagrant で VirtualBox 仮想マシンの CPU 数とメモリサイズを変更

VagrantVirtualBox 上の仮想マシンの CPU 数とメモリサイズを変更する方法としては、現時点で下記 2通りがあります。

  • (a) cpus や memory を使用する
  • (b) customize を使用する

ちなみに、Vagrant ソースの plugins/providers/virtualbox/config.rb を見ると、(a) は内部で customize を呼び出して (b) と同じ事をしているだけです。

(a) cpus や memory を使用する

cpusmemory を使って CPU 数とメモリサイズを変更する Vagrantfile は下記のようになります。

  • CPU 数を 2
  • メモリを 1 GB (1024 MB)
Vagrantfile 設定例 (a)
・・・
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    ・・・
    config.vm.provider "virtualbox" do |v|
        v.cpus = 2
        v.memory = 1024
    end
end

基本的に、こちらの方が分かり易いと思います。

(b) customize を使用する

customize を使って CPU 数とメモリサイズを変更する Vagrantfile は下記のようになります。

  • CPU 数を 2
  • メモリを 1 GB (1024 MB)
Vagrantfile 設定例 (b)
・・・
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    ・・・
    config.vm.provider "virtualbox" do |v|
        v.customize ["modifyvm", :id, "--cpus", "2"]
        v.customize ["modifyvm", :id, "--memory", "1024"]
    end
end

なお、上記の customize は、:id の箇所を変換した引数を VBoxManage コマンドへ渡して実行する事になります。 (Vagrant ソースの plugins/providers/virtualbox/action/customize.rb 等を参照)

つまり、仮想マシン 5f6002fc-1b3c-1523-5be3-c143831fbe05 に対して下記のようなコマンドを実行するのと同じです。

VBoxManage コマンドを使って CPU 数とメモリサイズ変更する例
> VBoxManage modifyvm 5f6002fc-1b3c-1523-5be3-c143831fbe05 --cpus 2
> VBoxManage modifyvm 5f6002fc-1b3c-1523-5be3-c143831fbe05 --memory 1024