Korzystam z książki kucharskiej github.com opscode-cookbooks / openldap. Napisałem książkę kucharską „lab_openldap”, która zawiera przepis „openldap :: server”.
Przepis server.rb wykorzystuje następującą klauzulę do przesłania pliku PEM z plików książek kucharskich / ssl / *. Pem na serwer do węzła lokalizacji [„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
Próbowano odczytać PEM z pliku książki kucharskiej „openldap” / ssl / # {node [„openldap”] [„server”]}. Pem.
Mam plik PEM w opakowującym pliku „lab_openldap” książka kucharska / ssl / # {node [„openldap”] [„server”]}. Pem ”.
Czy można zmodyfikować przepis „lab_openldap :: server.rb”, aby załadować PEM z opakowującej książki kucharskiej?
Uwagi: Jestem świadomy https://github.com/bryanwb/chef-rewind ale nie radzi sobie z tą sytuacją.
Aktualizacja
Podana odpowiedź za pomocą r.resource
jest poprawne.
W rzeczywistości problem z konkretnym kodem dotyczy słowa kluczowego „source” według http://docs.opscode.com/resource_cookbook_file.html odnosi się do lokalizacji pliku w katalogu / files w książce kucharskiej znajdującej się w repozytorium szefów kuchni.
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
Odpowiedzi:
1 dla odpowiedzi № 1Oczywiście, że jest! Musisz tylko ustawić cookbook
atrybut zasobu po jego zawinięciu. Domyślnie jest to „bieżąca książka kucharska”, ale można ją zmienić:
r = resources("cookbook_file[#{node["openldap"]["ssl_cert"]}]")
r.cookbook("my_wrapper_cookbook")
Jeśli spojrzysz na „Rewind szefa kuchni Bryana”, zobaczysz to robi to samo