私はapache2ベンダーのクックブックと私自身のアプリクックブックを扱っています。私のレシピでは、サイトの web_app 定義を使用し、ベンダー クックブックで定義されたテンプレートを使用したいと考えています。
#my-apache2/recipes/my-site.rb
web_app "my-site" do
#template not specified here, so it should use default
server_name "my-site.com"
docroot "#{app_dir}/public"
end
その結果、
Error executing action `create` on resource 'template[/etc/httpd/sites-available/my-site.conf]'
================================================================================
Chef::Exceptions::FileNotFound
------------------------------
Cookbook 'my-apache2' (1.0.0) does not contain a file at any of these locations:
my-site
apache2 テンプレート ディレクトリではなく、クックブックを参照しているためです。
他のリソースで何が機能したかを試しました:
resources("template[web_app.conf.erb]").cookbook "my-apache2"
ただし、このパスはリソース パラメータ ( ) に基づいて動的に生成されますname
。
#apache2/definitions/web_app.rb
application_name = params[:name]
template "#{node['apache']['dir']}/sites-available/#{application_name}.conf" do
source params[:template]
...
したがって、これはエラーを返します
Chef::Exceptions::ResourceNotFound
----------------------------------
Cannot find a resource matching template[web_app.conf.erb] (did you define it first?)
ラッパーのクックブックにコピーせずに、ベンダーのクックブックのテンプレートを使用する方法はありますか?