Chef运行剖析:流程、挑战与解决方案
1. Chef运行流程概述
Chef运行过程看似由一个简单命令启动并输出统一进度视图,但实际上背后包含多个离散且模块化的步骤。这些步骤的模块化特性使我们能更轻松地识别可能的定制类型。以下是详细的步骤分析:
- 同步食谱(Synchronize Cookbooks) :在计算扩展运行列表后,chef - client向Chef服务器请求所有食谱文件列表,仅请求运行所需的文件,避免在每个节点上维护所有食谱的完整副本。服务器提供列表后,chef - client将其与本地文件缓存中的副本进行比较,下载缺失或与服务器不同的文件。这些食谱文件最终存储在下一步创建的运行上下文(RunContext)对象中。使用chef - solo时,此步骤会被跳过,因为每个节点上已存储了所有食谱的完整副本。
- 设置运行上下文(SetUp RunContext) :Chef创建运行上下文对象,用于跟踪当前Chef运行状态的各种数据。该对象存储的数据在后续阶段逐步建立,在执行食谱代码时,它将包含运行所需的完整食谱文件列表和要应用于节点的所有资源的有序列表。运行上下文对象存储的数据包括:
- 食谱集合(The cookbook collection) :包含执行Chef运行所需的食谱文件,在“同步食谱”步骤中填充。
- 定义列表(The definitions list) :包含本次运行要使用的所有资源定义,在“加载食谱数据”步骤中填充。
- 事件(Events) :che
超级会员免费看
订阅专栏 解锁全文
187

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



