我正在尝试为以下内容写一本包装食谱厨师石墨回购 https://github.com/hw-cookbooks/graphite
在配方carbon.rb中,出现以下几行:
template "#{node['graphite']['base_dir']}/conf/storage-schemas.conf" do
owner node['apache']['user']
group node['apache']['group']
end
在 templates/default/storage-schemas.conf 中,有一个 storage-schemas.conf 文件不符合我的喜好。我可以内联编辑文件并实现我想要的效果,但如果我希望能够使我的存储库保持最新状态而不会发生合并冲突,那么这似乎不是一个好的厨师实践。所以我想知道是否可以用包装食谱来解决这个问题。
我的第一个虽然是类似的东西
include_recipe "graphite"
template "#{node['graphite']['base_dir']}/conf/storage-schemas.conf" do
owner node['apache']['user']
group node['apache']['group']
end
我将在基本配方完成后重新运行命令,并将我想要的文件放入wrappercookbook/templates/storage-schemas.conf.erb中。这是常见做法吗?感觉不是很干燥,但我想不出更干净的方法。
你已经很接近了。假设您的包装器说明书中有 storage-schemas.conf.erb 文件的修改版本,您可以执行以下操作:
include_recipe "graphite"
begin
r = resources(:template => "#{node['graphite']['base_dir']}/conf/storage-schemas.conf")
r.cookbook "my-cookbook"
rescue Chef::Exceptions::ResourceNotFound
Chef::Log.warn "could not find template to override!"
end
您还可以使用如下行:
r.source "graphite-stuff/my-storage-schemas.conf.erb"
如果您想以不同的方式组织包装食谱中的文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)