我有一個廚師食譜,它安裝nginx並安裝一個自定義的nginx.conf文件。它基本上與Opscode相同,並使用cookbook_file來安裝該文件。廚師更新配置文件
如果我更改了conf文件,然後使用chef重新運行cookbook,配置文件沒有更新。這看起來像一個錯誤 - 我做錯了什麼?
我有一個廚師食譜,它安裝nginx並安裝一個自定義的nginx.conf文件。它基本上與Opscode相同,並使用cookbook_file來安裝該文件。廚師更新配置文件
如果我更改了conf文件,然後使用chef重新運行cookbook,配置文件沒有更新。這看起來像一個錯誤 - 我做錯了什麼?
廚師認爲配方中的命令順序是執行順序。如果將template
保留爲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
的template
將覆蓋由cookbook_file
規定的文件。
這個答案是專注和完美的。 – 2013-02-10 19:29:56
在測試中,我發現如果您有:create_if_missing
設置,它將不更新文件,如果它的內容已更改。設置:create
它會。
您使用的是「廚師客戶端」還是「廚師獨奏」?如果「廚師 - 客戶端」,您是否已經用'knife cookbook upload'將新烹飪書上傳到廚師服務器? – 2011-05-23 13:30:23