Chef 库:功能、应用与实践示例
1. 什么是 Chef 库
在 Chef 中,库是一种强大且易于解释的定制化工具。简单来说,库允许我们在食谱(cookbooks)中包含任意的 Ruby 代码,其用途广泛,从定义实用的辅助方法,到实现可在资源中使用的数据库功能,甚至扩展 Chef 自身的核心类。
Chef 库有两个显著特征:
- 它们总是存放在食谱的 /libraries 文件夹中。
- 它们是食谱中最先被加载的部分。
Chef 通过 Kernel.load 方法将库文件加载到内存中。以下是负责加载库的方法代码:
class Chef
class RunContext
class CookbookCompiler
...
def load_libraries_from_cookbook(cookbook_name)
files_in_cookbook_by_segment(cookbook_name, :libraries).each do |filename|
begin
Chef::Log.debug("Loading cookbook #{cookbook_name}'s + library file: #{filename}")
Kernel.load(filename)
@events.library_file_loaded(filename)
re
超级会员免费看
订阅专栏 解锁全文
1

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



