2016-08-21 3 views
-1

У меня есть файл подChef атрибуты файлов

cookbooks/recipe/files/default/file 

где мне нужно добавить атрибут по умолчанию <%= node['hostname'] %>.

Я знаю, что могу поставить файл ниже templates/, но мне нужно, чтобы он находился под files/.

У меня есть атрибут, определенный выше, чтобы работать, шеф-повар не разбирает файл, на который он похож. Поскольку на узле файлы поступают в исходный текст.

Как это можно решить? Поскольку одна и та же переменная работала с файлами под templates/, в чем разница?

+1

Разница заключается в различии между шаблонами и файлами - шаблоны могут иметь в них переменные. Почему вы не можете поместить его в шаблоны /? Любое другое решение - это бандайда. – Sinkingpoint

+0

Что это за 'кулинарные книги/рецепт/файлы /' путь? Вы имеете в виду 'cookbooks//files /', не так ли? – StephenKing

ответ

2

tl; dr Вы не можете.

Разница - это именно то, с чем вы столкнулись. Ресурс cookbook_file копирует исходный файл из поваренной книги, а template передает его через шаблонный шаблон Erubis.

Вы не можете сделать это с помощью ресурса file. Вместо этого используйте ресурс template (и переместите его на templates/). Эта процедура абсолютно нормальна, когда вы решаете, что вам нужно сделать файл параметризованным. Я не считаю, что ваш аргумент «Мне нужно, чтобы он находился под files/». Просто переместите его.