クックブック github.com opscode-cookbooks/openldap を使用しています。「openldap::server」レシピを含むラッパークックブック「lab_openldap」を作成しました。
server.rb レシピは、次の句を使用して、クックブック ファイル/ssl/*.pem からサーバーのノード ['openldap']['ssl_cert'] に PEM ファイルをアップロードします。
if node['openldap']['tls_enabled'] && node['openldap']['manage_ssl']
cookbook_file node['openldap']['ssl_cert'] do
source "ssl/#{node['openldap']['server']}.pem"
mode 00644
owner "root"
group "root"
end
end
PEM は、「openldap」クックブック ファイル/ssl/#{node['openldap']['server']}.pem」の場所から読み取ろうとします。
ラッパー「lab_openldap」クックブック file/ssl/#{node['openldap']['server']}.pem」に PEM ファイルがあります。
「lab_openldap::server.rb」レシピを変更して、ラッパー クックブックから PEM をロードすることは可能ですか?
注: https://github.com/bryanwb/chef-rewindを認識していますが、この状況を管理していないようです。
アップデート
を使用して提供された答えr.resource
は正しいです。
実際、特定のコードの問題は、 http://docs.opscode.com/resource_cookbook_file.htmlによると、chef-repo にあるクックブックの /files ディレクトリ内のファイルの場所を参照する「source」キーワードにあります。 .
r = resources("cookbook_file[#{node['openldap']['ssl_cert']}]")
r.cookbook('lab_openldap')
cookbook_file node['openldap']['ssl_cert'] do
source "ssl/#{node['openldap']['server']}.pem"
mode 00644
owner "root"
group "root"
end