Vagrant を使用してローカルで非常にうまく機能する Chef プロジェクトがあります。を使用してlibrarian-chef
います。つまり、依存関係を次のCheffile
ように指定できます。
site 'http://community.opscode.com/api/v1'
cookbook 'jenkins'
次に を実行すると、依存するすべてのクックブックがディレクトリにlibrarian-chef install
プルダウンされます。jenkins
cookbooks
また、別のディレクトリ があります。このディレクトリにsite-cookbooks
は、独自のカスタム クックブックとレシピをすべて記述しています。
では、Vagrantfile
クックブックの 2 つの異なるパスを参照するように指示できます。
config.vm.provision "chef_solo" do |chef|
chef.cookbooks_path = ["cookbooks", "site-cookbooks"]
# snip
end
を実行すると、これは完全に機能しますvagrant up
。ただし、AWS OpsWorks ではうまく機能しないようです。これには、すべてのクックブックが Chef リポジトリの最上位にある必要があるためです。
私の質問は、リポジトリの最上位レベルにすべての依存関係を含めずに、OpsWorks で Chef を使用する最も良い方法は何ですか?