Вам следует ознакомиться с Обзором клиента Chef .В частности, порядок Сбросить атрибуты узла phase, Скомпилировать коллекцию ресурсов phase и Converge the node phase.
Ohai информация перезагружаетсякаждый раз, когда ресурсы компилируются, на этапе сброса.Если цель состоит в том, чтобы перезагрузить Ohai для вашего заявления if, то ресурс Ohai, который у вас есть, здесь не нужен.Этот ресурс Ohai будет работать во время фазы конвергенции.Блок if запускается до того ресурса Ohai, на этапе компиляции.Это также означает, что оператор if будет возвращаться во время фазы компиляции, а не во время запуска клиента chef.
Как правило;ресурсы работают во время конвергенции, но любой код ruby, которого нет в ресурсе ruby_block
, выполняется во время компиляции.Это означает, что любой оператор if завершается во время компиляции с состоянием узла до запуска текущего клиента.
Надеюсь, это поможет устранить некоторую путаницу.