Назад | Перейти на главную страницу

Общие файлы / шаблоны в кулинарных книгах

У нас есть несколько кулинарных книг, которые ссылаются на одни и те же файлы и шаблоны, и мы задались вопросом, есть ли разумный способ гарантировать, что все они являются одним и тем же файлом, чтобы ни один из них не устарел. Возможно ли, чтобы на один файл / шаблон ссылались несколько рецептов / кулинарных книг? Я думал об использовании символических ссылок, но это не сработает для нас, поскольку 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

Однако я бы спросил, почему в ваших кулинарных книгах дублируются различные функции? То есть подойдет ли такая вещь для пользовательского легкого ресурса / поставщика, который вы используете?