クックブックのパスを特定の場所に設定したいので、毎回 (vagrant init の後) Vagrantfile を変更する必要はありません。
Vagrantfileが複数の場所でロードされることがわかったので、クックブックのパス情報を ~/.vagrant.d/Vagrantfile に設定することにしました (このファイルは Vagrantfile のロード順の 3 番目です)。
...
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = ["D:/lib/chef/cookbooks"]
chef.add_recipe "dev::default"
end
...
しかし、新しい vm を作成し、Vagrantfile を変更すると (このファイルは Vagrantfile Load Order の 4 番目になります):
...
config.vm.provision :chef_solo do |chef|
chef.add_recipe "torch"
end
...
エラー:
[2013-02-28T03:23:36+00:00] ERROR: Running exception handlers
[2013-02-28T03:23:36+00:00] ERROR: Exception handlers complete
[2013-02-28T03:23:36+00:00] FATAL: Stacktrace dumped to /tmp/vagrant-chef-1/chef-stacktrace.out
[2013-02-28T03:23:36+00:00] FATAL: Chef::Exceptions::CookbookNotFound: Cookbook torch not found. If
you're loading torch from another cookbook, make sure you configure the dependency in your metadata
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.
しかし、特定のクックブックが私のクックブック パスの下にあると確信しています。