Вопрос

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

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top