web-dev-qa-db-ja.com

クックブック間の共有ファイル/テンプレート

同じファイルとテンプレートを参照する複数のクックブックがあり、これらすべてが同じファイルであることを確認して古くならないようにするための合理的な方法があるかどうか疑問に思っていました。複数のレシピ/クックブックで参照される単一のファイル/テンプレートを持つことは可能ですか?シンボリックリンクの使用を考えましたが、Gitがサポートしていないため、これは機能しません。

11
gdurham

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

ただし、クックブックのさまざまな種類の機能が重複しているのはなぜですか。つまり、この種のものは、使用するカスタムの軽量リソース/プロバイダーに適していますか?

17
jtimberman