我有一个 Chef 项目,在本地与 Vagrant 合作,效果非常好。我正在使用librarian-chef
,这意味着我可以像这样指定我的依赖项Cheffile
:
site 'http://community.opscode.com/api/v1'
cookbook 'jenkins'
然后当我运行时,它会将它所依赖的所有食谱拉到一个librarian-chef install
目录中。jenkins
cookbooks
还有另一个目录,site-cookbooks
,这是我编写所有我自己的自定义食谱和食谱的地方。
在 中Vagrantfile
,您可以告诉它查看食谱的两种不同路径:
config.vm.provision "chef_solo" do |chef|
chef.cookbooks_path = ["cookbooks", "site-cookbooks"]
# snip
end
当我运行时,这非常有效vagrant up
。但是,它似乎不能很好地与 AWS OpsWorks 配合使用——因为这要求所有说明书都位于 Chef 存储库的顶层。
那么我的问题是:在不包括我的存储库顶层的所有依赖项的情况下,将 Chef 与 OpsWorks 一起使用的最佳方式是什么?