Chef обновить конфигурационный файл - PullRequest
3 голосов
/ 22 мая 2011

У меня есть поваренная книга шеф-повара, которая устанавливает nginx и устанавливает специальный файл nginx.conf.Это в основном та же самая кулинарная книга по Opscode, и для ее установки используется cookbook_file.

Если я внесу изменения в файл conf, то перезапущу кулинарную книгу, используя chef, файл конфигурации не обновляется.Это похоже на ошибку - я делаю что-то не так?

Ответы [ 2 ]

7 голосов
/ 24 апреля 2012

У шеф-повара, что порядок команд в рецепте есть порядок выполнения.если вы сохранили 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.

1 голос
/ 28 апреля 2014

При тестировании я обнаружил, что если вы установили :create_if_missing, он не будет обновлять файл, если его содержимое изменилось.Установите :create и оно будет.

...