2015-01-27 8 views
1

Я ищу для добавления конфигураций в файл conf, который извлекается из файла tar.Можно ли добавить частичный шаблон в exsiting файл? [chef cookbook]

В настоящее время поваренная книга использует шаблон для перезаписи всего файла, вместо этого мне нужно использовать исходный файл в качестве шаблона и добавить к нему.

Частичные шаблоны, кажется, делают задачу, но я не смог найти пример частичного применяется к существующему файлу,

это возможно?

спасибо

+0

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

+0

приложение находится в автономном tar, и все необходимые файлы должны и находятся в tar, не должно быть внешних зависимостей. Таким образом, приложение поставляется в виде смолы и не поставляется вместе с кулинарной книгой. – david

+0

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

ответ

1

Нет, вы не можете этого сделать. Если оригинал уже не является шаблоном erb, вы не можете использовать его таким образом. У вас действительно есть два варианта.

  1. Создайте шаблон, который включает в себя исходный файл как частичный внутри него. Я думаю, что это сработает, хотя я никогда не пробовал, и я не уверен, что система шеф-повара позволит вам использовать файл за пределами кулинарной книги как частичный.
  2. Используйте модуль FileUtil от шеф-повара, чтобы изменить файл. Если вы это сделаете, я настоятельно рекомендую вам создать LWRP для его переноса и создать новый файл в кеше chef, затем сравнить с существующим файлом и только «обновить», если произойдет смена.

На самом деле, ваш лучший выбор - это почти наверняка использовать пользовательский шаблон erb для него. Если в оригинале есть какие-то специальные данные, которые вам нужно повторно захватить, вы можете использовать ruby_block для чтения этих данных с оригиналом, а затем передать его в свой шаблон.

 Смежные вопросы

  • Нет связанных вопросов^_^