...
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 コア数を設定する
仮想マシンの基本的なリソースもここで設定できます。
...
Vagrantfile は Git リポジトリでバージョン管理されるファイルです。
しかし、利用者ごとに異なるユーザー名やパスワードなどは Git リポジトリにコミットしたくないので、Vagrantfile リポジトリにコミットしたくないので、
Vagrantfile に直接書くのは避けたいです。
.yml ファイルを読み込む
...
dotenv を Vagrant のプラグインとしてインストールしておき、.env ファイルに設定を書く方法や、vagrantファイルに設定を書く方法や、
vagrant-secret プラグインを利用する方法などがあるようです。
...
プラグインがインストールされているかチェックする
vagrant-omnibus などの必須プラグインがインストールされていない場合に、そのまま などの必須プラグインがインストールされていない場合に、
そのまま vagrant up を実行してしまうと Ruby のスタックトレースが表示され、vagrant up が失敗します。
スタックトレースを見ても、ユーザーはどうしてそれが失敗したのか判断できない場合が多いです。
...
コード ブロック |
---|
config.vm.provision :chef_solo do |chef| chef_gem_path = "/opt/chef/embedded/lib/ruby/gems/1.9.1" chef.binary_env = "GEM_PATH=#{chef_gem_path} GEM_HOME=#{chef_gem_path}" chef.binary_path = "/opt/chef/bin" end |
yum や Chef の remote_file でダウンロードしたファイルをホストにキャッシュする
vagrant-cachier プラグインを使用します。
このプラグインを使用すると、ホストマシンのディレクトリが /var/cache/yum や Chef::Config[:file_cache_path] に
マウントされ、Box 単位、または Vagrant up する VM 単位で永続化されます。
利用するには、vagrant-cachier プラグインのインストールが必要です。
コード ブロック |
---|
$ vagrant plugin install vagrant cachier |
Vagrantfile では vagrant-cachier プラグインがインストールされている場合に、
キャッシュする単位とキャッシュするモノを指定します。
コード ブロック |
---|
if Vagrant.has_plugin?('vagrant-cachier') then
# Box 単位でキャッシュする
config.cache.scope = :box
# Chef と yum のファイルをキャッシュする
config.cache.enable :chef
config.cache.enable :yum
end |
注意 |
---|
このプラグインで Chef::Config[:file_cache_path] をキャッシュする場合は、
|