У нас есть несколько кулинарных книг, которые ссылаются на одни и те же файлы и шаблоны, и мы задались вопросом, есть ли разумный способ гарантировать, что все они являются одним и тем же файлом, чтобы ни один из них не устарел. Возможно ли, чтобы на один файл / шаблон ссылались несколько рецептов / кулинарных книг? Я думал об использовании символических ссылок, но это не сработает для нас, поскольку Git их не поддерживает.
Ресурсы cookbook_file и template поддерживают параметр «cookbook», который указывает, какая книга рецептов содержит исходный файл. Затем вы можете создать «поваренную книгу общего пользования», в которой эти файлы будут существовать как единое целое. Например:
% cookbooks/commons
cookbooks/commons
|-- files
| `-- default
| `-- master.conf
`-- templates
`-- default
`-- general.conf.erb
Предположим, у вас есть две кулинарные книги, thing1 и thing2, и они обе их используют. Рецепты могут быть:
# 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
Однако я бы спросил, почему в ваших кулинарных книгах дублируются различные функции? То есть подойдет ли такая вещь для пользовательского легкого ресурса / поставщика, который вы используете?