2015-04-02 2 views
1

Есть ли способ для шеф-повара определить, изменил ли он какой-либо файл в заданном каталоге? Я хотел бы перезапустить серверный процесс, если будут обновлены какие-либо настройки в каталоге conf.d.Как определить, изменился ли какой-либо файл в каталоге

Я уверен, что можно записать список md5sums в файл на каждом сеансе chef-client и сравнить текущий с предыдущими итерациями. Но это справедливый бит кода для решения того, что, по-видимому, является распространенным сценарием. Есть ли способ лучше?

+2

Знаете ли вы [уведомления] (https://docs.chef.io/resource_common.html#notifications)? – StephenKing

+0

@ StephenKing nope, это выглядит идеально. Если вы ответите на этот вопрос, я соглашусь с ним. –

+0

Рад, что я мог бы помочь. Извините за задержку (уведомление не было отложено, только свободное время :-)) – StephenKing

ответ

1

Chef предоставляет концепцию под названием notifications.

Это позволяет определить, что изменение одного ресурса запускает выполнение другого ресурса. Указанный перезапуск службы после изменения файла конфигурации, вероятно, является наиболее распространенным вариантом использования.

template "/etc/foo/conf.d/example.conf" do 
    notifies :restart, "service[foo]" 
end 

service "foo" do 
    supports :restart => true, :reload => true 
    action :enable 
end 

По умолчанию уведомления :delayed, что означает, что они срабатывают в конце пробега Chef. Это поможет вам избежать, например, сервис для перезапуска один раз для каждого измененного файла конфигурации. Если вы хотите немедленное уведомление, используйте

notifies :restart, "service[foo]", :immediately 

Конечно, вы можете использовать уведомления шефа не только услуги, но и для любого ресурса. Дополнительные примеры приведены в documentation.

-2

Вы можете использовать утилиту inotifywait из inotify-tools пакета

+1

Извините, но chef - это система управления конфигурацией. Использование inotify будет противоречить тому, что, по крайней мере, я, как пользователь шеф-повара, хочет. – StephenKing

Смежные вопросы