gpt4 book ai didi

chef-infra - 替换包装 Recipe 中的模板

转载 作者:行者123 更新时间:2023-12-03 11:48:49 26 4
gpt4 key购买 nike

我正在尝试为chef graphite repo编写包装食谱

在配方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"

如果您想以其他方式组织包装指南中的文件。

关于chef-infra - 替换包装 Recipe 中的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15933157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com