Chef FileEdit不断创建新文件

时间:2014-03-20 01:00:41

标签: chef

我的食谱中有一个简单的insert_line_if_no_match,似乎在每个后续的厨师 - 客户端运行中不断重新创建文件。

在阅读了FileEdit的rubydoc页面之后,它说如果文件发生了变化,它只会写一个新文件,但这似乎不是真的。

其他人有这个问题吗?

ruby​​_block“provide_useful_default_prompt”执行

block do
    profile = Chef::Util::FileEdit.new("/etc/profile")
    profile.insert_line_if_no_match(/PS1/, "\nPS1='[\\! (\\h):\\W] '\n")
    profile.write_file
end

更多/ etc / profile | grep PS1

PS1 ='[! (\ h):\ W]' 端

1 个答案:

答案 0 :(得分:0)

您可能需要考虑使用line食谱。它有一些我们经常使用的LWRP。例如:

replace_or_add "provide_useful_default_prompt" do
  path    "/etc/profile"
  pattern "PS1"
  line    "PS1='[\\! (\\h):\\W] '\n"
  action  :edit
end

如果您使用depends 'line',请务必在metadata.rbcookbook 'line'中添加Berksfile