Файл конфигурации обновления Chef
-
09-09-2020 - |
Вопрос
У меня есть кулинарная книга шеф-повара, которая устанавливает 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
и так и будет.