Я использую кулинарную книгу github.com opscode-cookbooks / openldap. Я написал рецепт оболочки lab_openldap, который включает рецепт openldap :: server.
Рецепт server.rb использует следующую команду clausule для загрузки файла PEM из файлов поваренных книг / ssl / *. Pem на сервер в узел расположения ['openldap'] ['ssl_cert'].
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 / # {узел ['openldap'] ['server']}. Pem "расположение.
У меня есть файл PEM в файле рецептов оболочки lab_openldap / ssl / # {node ['openldap'] ['server']}. Pem "location.
Можно ли изменить рецепт lab_openldap :: server.rb для загрузки PEM из поваренной книги оболочки?
Примечания. Мне известно о https://github.com/bryanwb/chef-rewind, но это похоже, не справляется с этой ситуацией.
Обновлять
Предоставленный ответ с использованием r.resource
правильный.
На самом деле проблема в конкретном коде связана с ключевым словом "источник", которое согласно http://docs.opscode.com/resource_cookbook_file.html указывает на расположение файла в каталоге / files в кулинарной книге, расположенной в репозитории chef-repo.
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