質問

NginxをインストールしてカスタムNGINX.confファイルをインストールするChef Cookbookを持っています。それは基本的にはオペアコード上の同じクックブックで、クックブックを使用してファイルをインストールします。

CONFファイルを変更した場合は、Chefを使用してクックブックを再実行してください。設定ファイルは更新されません。これはバグのように思えます - 私は何か間違っていることをしていますか?

役に立ちましたか?

解決

シェーフでは、レシピ内のコマンドの順番が実行順であることがわかります。templatenginx.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を設定し、それはそうします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top