深入探究Chef运行机制与Ohai扩展
1. Chef运行流程中的关键方法
1.1 run_chef_client方法
在程序执行(使用内置的Ruby sleep方法)一段时间后,会调用 run_chef_client 方法。该方法定义在 Chef::Application 超类中,是所有Chef客户端工具(如 chef-client 或 chef-solo )启动Chef运行前的最后一个“准备”步骤。其代码如下:
# Initializes Chef::Client instance and runs it
def run_chef_client
Chef::Application.setup_server_connectivity
@chef_client = Chef::Client.new(
@chef_client_json,
:override_runlist => config[:override_runlist]
)
@chef_client_json = nil
@chef_client.run
@chef_client = nil
Chef::Application.destroy_server_connectivity
end
该方法的执行步骤如下:
1. 设置服务器连接 :调用 Chef::Application.se
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



