我有三本食谱,每本都有一个模板资源,可以写入/etc/hosts文件。
我不想重写,而是要附加:
第一本食谱创建/etc/hosts文件并写入第1、2、3行。
第二本食谱在第4、5行后面。等。
在主厨区怎么处理?

最佳答案

您最好创建一个菜谱来管理从属性生成它的文件。
食谱a/attributes/default.rb

default['hosts']['lines'] = []

食谱a/recipes/genfile.rb
template "/etc/hosts" do
  source "hosts.erb"
end

cookbooka/templates/default/hosts.erb
#File Generated by Chef
<% node['hosts']['lines'].each do |l| %>
<% l -%>
<% end.unless node['hosts']['lines'].empty? %>

然后在其他的食谱属性文件中:
default['hosts']['lines'] << ["first line","second line"]

有那些食谱取决于食谱和食谱调用include_recipe "CookbookA::genfile.rb"
使用<<可以附加到属性,而不是覆盖它们。

关于ruby - 用多个厨师食谱编写文件,所有食谱均针对同一文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30925368/

10-11 07:58