3

nginx をインストールし、カスタム nginx.conf ファイルをインストールするシェフのクックブックがあります。これは基本的に Opscode の同じクックブックであり、cookbook_file を使用してファイルをインストールします。

conf ファイルを変更した場合、chef を使用してクックブックを再実行しても、構成ファイルは更新されません。これはバグのようです。何か間違っているのでしょうか?

4

2 に答える 2

7

シェフでは、レシピ内のコマンドの順序が実行順序です。を保持し、コマンドの後に続くとtemplate、生成されたテンプレートによってファイルが上書きされます。nginx.confcookbook_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

于 2012-04-24T14:13:30.113 に答える
1

:create_if_missingテストでは、設定した場合、内容が変更された場合にファイルが更新されないことがわかりました。設定:createしてください。

于 2014-04-28T15:27:08.893 に答える