厨师更新配置文件

Mik*_*ade 3 chef-infra

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

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

jar*_*rad 7

在厨师中,配方中的命令顺序是执行顺序.如果您保留了templatefor,nginx.conf并且它在您的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
Run Code Online (Sandbox Code Playgroud)

template会覆盖所订下的文件cookbook_file.