VirtualBox の VM を細かく設定する
VirtualBox の設定は virtualbox プロバイダの設定で行います。
VirtualBox プロバイダの customize メソッドは VirtualBox の VBoxManage コマンドを経由して、これから起動しようとしている VM のあらゆる設定を行います。
たとえば、メモリサイズを変更する場合は次のように書きます。
コード ブロック |
---|
config.vm.provider :virtualbox do |vbox|
vbox.customize ['modifyvm', :id '--memory', '4096']
end |
VBoxManage コマンドの詳細は VirtualBox のドキュメント [ https://www.virtualbox.org/manual/ch08.html ] を確認してください。
メモリサイズや CPU コア数を設定する
仮想マシンの基本的なリソースもここで設定できます。
コード ブロック |
---|
config.vm.provider :virtualbox do |vbox|
# メモリサイズ
vbox.customize ['modifyvm', :id, '--memory', '4096']
# CPU 利用率の制限
vbox.customize ['modifyvm', :id, '--cpuexecutioncap', '80']
# CPU コア数
vbox.customize ['modifyvm', :id, '--cpus', '4']
# CUP コア数を2以上にするのに必要
vbox.customize ['modifyvm', :id, '--ioapic', 'on']
# 64bit OS を使用するのに必要
vbox.customize ['modifyvm', :id, '--hwvirtex', 'on']
end |
※ ゲスト OS が WIndows の場合など、CPU コア数を変更できない場合もあります。
VirtualBox の環境設定をする
クリップボードや入力インタフェースも同じように設定できます。
コード ブロック |
---|
config.vm.provider :virtualbox do |vbox|
# クリップボード共有の設定
vbox.customize ['modifyvm', :id, '--clipboard', 'bidirectional']
# ドラッグアンドドロップの設定(双方向はまだサポートされていないらしい)
vbox.customize ['modifyvm', :id, '--draganddrop', 'hosttoguest']
# マウスの種類の選択
vbox.customize ['modifyvm', :id, '--mouse', 'usbtablet']
# キーボードの種類の選択
vbox.customize ['modifyvm', :id, '--keyboard', 'usb']
end |
起動ロゴを設定する
VIrtualBox は 640 * 480 の非圧縮ビットマップファイルを起動ロゴとして表示できます。
Vagrantfile と同じディレクトリに logo.bmp を置いた場合は、次のように記述します。
コード ブロック |
---|
config.vm.provider :virtualbox do |vbox|
# 起動ロゴのファイルパス
vbox.customize ['modifyvm', :id, '--bioslogoimagepath', "#{Dir::pwd}/logo.bmp"]
# フェードインする
vbox.customize ['modifyvm', :id, '--bioslogofadein', 'on']
# フェードアウトする
vbox.customize ['modifyvm', :id, '--bioslogofadeout', 'on']
# 起動ロゴの表示時間
vbox.customize ['modifyvm', :id, '--bioslogodisplaytime', '10000']
end |
ネットワークを速くする
これ、実はネット上の情報では全く逆の設定で速くなったというものもあって、よくわかっていないです。
情報をもっている方がいたら、ぜひ教えてください。
コード ブロック |
---|
config.vm.provider :virtualbox do |vbox|
vbox.customize ['modifyvm', :id, '--natdnsproxy1', 'off']
vbox.customize ['modifyvm', :id, '--natdnshostresolver1', 'off']
end |
※ HIroki ITO さんに調べてもらいたい。
Vagrantfile の設定を外部ファイルで制御する
Vagrantfile は Git リポジトリでバージョン管理されるファイルです。
しかし、利用者ごとに異なるユーザー名やパスワードなどは Git リポジトリにコミットしたくないので、Vagrantfile に直接書くのは避けたいです。
...