Ответ 1
notifies
отправляет уведомление другому ресурсу шеф-повара, чтобы что-то сделать.
В вашем примере он сообщает ресурсу service[nginx]
:reload
. service[nginx]
- это service
ресурс, name
которого nginx
.
Чтобы это сработало, в какой-то момент в node run_list
должно было быть объявлено service[nginx]
. В противном случае шеф-повар сделает ошибку. Обычно это делается вручную в рецепте пользователем или через зависимость (скажем, application
или nginx
кулинарные книги).
Точно так же, как Chef запускает команду reload
, зависит от того, как был объявлен ресурс service[nginx]
, но обычно он зависит от базовой операционной системы (что одна из красот использования такого инструмента, как эта, - она абстрагирует многие детали нижнего уровня от вас и позволяют использовать один и тот же код на нескольких платформах).
В разделе Синтаксис документации service
вы найдете следующее:
- Служба
- сообщает шеф-клиенту использовать один из следующих поставщиков во время работы chef-client:
Chef::Provider::Service::Init
,Chef::Provider::Service::Init::Debian
,Chef::Provider::Service::Upstart
,Chef::Provider::Service::Init::Freebsd
,Chef::Provider::Service::Init::Gentoo
,Chef::Provider::Service::Init::Redhat
,Chef::Provider::Service::Solaris
,Chef::Provider::Service::Windows
илиChef::Provider::Service::Macosx
. Шеф-клиент обнаружит платформу в начале прогона на основе данных, собранных Ohai. После того, как платформа будет идентифицирована, клиент-шеф-повар определит правильного поставщика.