Dan DeLeo appeared on the FoodFightShow some time ago to walk through "what a Chef run really does". I expanded on these remarks in my personal investigation.
-
bin/chef-client
creates a newChef::Application::Client
(subclass ofChef::Application
which sets up common things like loggers across chef-client, chef-solo, knife, etc.) then jump to: -
lib/chef/client.rb
-
application classes create a new
Chef::Client
object, which callsinitialize()
.