質問
NginxをインストールしてカスタムNGINX.confファイルをインストールするChef Cookbookを持っています。それは基本的にはオペアコード上の同じクックブックで、クックブックを使用してファイルをインストールします。
CONFファイルを変更した場合は、Chefを使用してクックブックを再実行してください。設定ファイルは更新されません。これはバグのように思えます - 私は何か間違っていることをしていますか?
解決
シェーフでは、レシピ内のコマンドの順番が実行順であることがわかります。template
のnginx.conf
を保持し、cookbook_file
コマンドの後に付属している場合、生成されたテンプレートはファイルを上書きします。
e.g.
# 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
によってレイズダウンされたファイルを上書きします。
他のヒント
テストでは、:create_if_missing
セットがある場合は、内容が変更された場合はファイルが更新されません。:create
を設定し、それはそうします。
所属していません StackOverflow