【发布时间】:2016-01-07 17:46:00
【问题描述】:
我正在使用配方来编辑文件。如果我想编辑一个文件,我在配方中使用 ruby_block 资源,其中值是在属性中定义的。以下是我的示例食谱。
ruby_block 'edit conf' do
block do
rc = Chef::Util::FileEdit.new("#{node['Installation']['file1']}")
rc.search_file_replace_line("Dir","Dir=#{node['Installation']['home']}")
rc.search_file_replace_line("max","max=#{node['Installation']['log_home']}")
rc.write_file
end
end
这将搜索和替换在属性中定义值的某些值。将来如果值更改,那么我必须编辑属性文件中的值。有什么方法可以不触碰我的配方或属性文件并替换这些值。就像我引用了一个包含需要更改的值集的 vfile 一样。属性或配方从该文件中选择值并替换它。这样我就可以随时更改文件中的值,并且配方和属性不会更改。或任何其他想法。
感谢您的帮助!
【问题讨论】:
标签: chef-infra chef-recipe chef-solo