nginx をインストールし、カスタム nginx.conf ファイルをインストールするシェフのクックブックがあります。これは基本的に Opscode の同じクックブックであり、cookbook_file を使用してファイルをインストールします。
conf ファイルを変更した場合、chef を使用してクックブックを再実行しても、構成ファイルは更新されません。これはバグのようです。何か間違っているのでしょうか?
nginx をインストールし、カスタム nginx.conf ファイルをインストールするシェフのクックブックがあります。これは基本的に Opscode の同じクックブックであり、cookbook_file を使用してファイルをインストールします。
conf ファイルを変更した場合、chef を使用してクックブックを再実行しても、構成ファイルは更新されません。これはバグのようです。何か間違っているのでしょうか?
シェフでは、レシピ内のコマンドの順序が実行順序です。を保持し、コマンドの後に続くと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
。
:create_if_missing
テストでは、設定した場合、内容が変更された場合にファイルが更新されないことがわかりました。設定:create
してください。