是否可以将部分模板附加到现有文件? [厨师食谱]

时间:2015-01-27 15:39:18

标签: chef partials cookbook chef-template

我希望将配置添加到从tar文件中提取的conf文件中。

目前,食谱使用模板覆盖整个文件,而我需要将原始文件用作模板并添加到其中。

部分模板似乎可以完成任务,但我还没有找到部分应用于现有文件的示例,

甚至可能吗?

谢谢

2 个答案:

答案 0 :(得分:1)

不,你不能真的这样做。如果原件不是erb模板,那么您就无法以这种方式使用它。你真的有两个选择。

  1. 创建一个模板,其中包含原始文件作为其中的部分文件。我认为这样可行,但我从来没有尝试过,而且我不确定厨师的系统是否会让你使用菜谱外的文件作为部分文件。
  2. 使用chef中的FileUtil模块来修改文件。如果你这样做,我强烈建议你创建一个LWRP来包装它,并在厨师缓存中创建新文件,然后与现有文件进行比较,并且只有"更新"如果有变化。
  3. 实际上,最好的选择几乎可以肯定就是使用自定义erb模板。如果您需要重新捕获原始文件中的某些特殊数据,则可以使用ruby_block从原始数据中读取该数据,然后将其传递到模板中。

答案 1 :(得分:0)

您似乎可以使用第二种方法。我已尝试使用本示例中的部分模板,但是https://github.com/danielsdeleo/partials