Спільні файли / шаблони між кулінарними книгами


11

У нас є декілька кулінарних книг, які посилаються на одні і ті ж файли та шаблони, і нам цікаво, чи є розумний спосіб забезпечити, щоб усі вони були одним і тим же файлом, щоб жодна дата не застаріла. Чи можливо мати один файл / шаблон, на який посилаються кілька рецептів / кулінарних книг? Я думав про використання символьних посилань, однак це не допоможе нам, оскільки Git не підтримує їх.

Відповіді:


17

Ресурси cookbook_file та шаблону підтримують параметр "cookbook", який визначає, яка кулінарна книга містить вихідний файл. Тоді ви можете створити "спільну" кулінарну книгу, де ці файли живуть як єдине ціле. Наприклад:

% cookbooks/commons
cookbooks/commons
|-- files
|   `-- default
|       `-- master.conf
`-- templates
    `-- default
        `-- general.conf.erb

Припустимо, у вас є дві кулінарні книги, річ1 та річ2, і вони обидва використовують ці. Рецепти можуть бути:

# 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

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


1
Дякую за приклад, як і за інше рішення. Це прекрасно!
gdurham
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.