同じファイルとテンプレートを参照する複数のクックブックがあり、これらすべてが同じファイルであることを確認して古くならないようにするための合理的な方法があるかどうか疑問に思っていました。複数のレシピ/クックブックで参照される単一のファイル/テンプレートを持つことは可能ですか?シンボリックリンクの使用を考えましたが、Gitがサポートしていないため、これは機能しません。
Cookbook_fileおよびテンプレートリソースは、ソースファイルを含むクックブックを指定する「cookbook」パラメーターをサポートします。次に、これらのファイルが単一のエンティティとして存在する「commons」クックブックを作成できます。例えば:
% cookbooks/commons
cookbooks/commons
|-- files
| `-- default
| `-- master.conf
`-- templates
`-- default
`-- general.conf.erb
Thing1とThing2という2つのクックブックがあり、どちらもこれらを使用しているとします。レシピは次のようになります。
# thing1/recipes/default.rb
cookbook_file "/etc/thing1/master.conf" do
source "master.conf"
cookbook "commons"
end
template "/etc/thing1/general.conf" do
source "general.conf.erb"
cookbook "commons"
end
# thing2/recipes/default.rb
cookbook_file "/etc/thing2/like_master_but_different.conf" do
source "master.conf"
cookbook "commons"
end
template "/etc/thing2/not_as_general_as_you_think.conf" do
source "general.conf.erb"
cookbook "commons"
end
ただし、クックブックのさまざまな種類の機能が重複しているのはなぜですか。つまり、この種のものは、使用するカスタムの軽量リソース/プロバイダーに適していますか?