厨师更新配置文件

时间:2011-05-22 00:35:04

标签: chef

我有一个厨师食谱,可以安装nginx并安装自定义的nginx.conf文件。它与Opscode基本相同,并使用cookbook_file来安装文件。

如果我对conf文件进行了更改,则使用chef重新运行cookbook,配置文件不会更新。这似乎是一个错误 - 我做错了吗?

2 个答案:

答案 0 :(得分:7)

在厨师中,食谱中的命令顺序是执行顺序。如果您保留template的{​​{1}}并且它位于nginx.conf命令之后,则生成的模板将覆盖您的文件。

e.g。

cookbook_file

# cookbook file cookbook_file "#{node[:nginx][:dir]}/nginx.conf" do source "my_nginx.conf" mode 0644 owner "root" group "root" end # template template "nginx.conf" do path "#{node[:nginx][:dir]}/nginx.conf" source "nginx.conf.erb" owner "root" group "root" mode 0644 notifies :reload, "service[nginx]" end 会覆盖template

所规定的文件

答案 1 :(得分:1)

在测试中,我发现如果你设置:create_if_missing,如果内容已经改变,它将不会更新文件。设置:create即可。