Chef-solo 与 Chef 相比具有一些有限的功能。如果 Chef-solo 不能满足您的需求,您可以轻松切换到 Hosted Chef(或类似的)并将其与您的 Vagrant 设置一起使用。
要回答您的问题...从检查文档看来:
chef-solo 可以从数据包中加载数据,只要该数据包的内容可以从存在于与 chef-solo 相同的计算机上的目录结构中访问。此目录的位置可使用 solo.rb 文件中的 data_bag_path 选项进行配置。每个子目录的名称对应一个数据包,子目录中的每个 JSON 文件对应一个数据包项。当使用 chef-solo 运行时,搜索在食谱中不可用;使用 data_bag() 和 data_bag_item() 函数访问数据包和数据包项。
如果要添加搜索功能,相同的文档建议:
使用 chef-solo-search食谱库(由 Opscode 社区成员“edelight”开发,可从 github 获得)将数据包搜索功能添加到 chef-solo 环境:
最后,您的评论:
我想使用 Chef Solo 进行测试,因为每当我将 Berkshelf 与 vagrant provision 一起使用时,它都会重新上传我所有的食谱,每次大约需要 1-2 分钟。
不太有效(如果我理解正确的话)。无论您使用 Hosted Chef、Open Source Chef 还是 Chef-solo,烹饪书的上传几乎都不会受到影响。如果您总是添加一套全新的食谱,上传可能需要更长的时间,但通常只需对一些食谱进行一些细微的更改并上传新的修订版。配置时,只会将更新的说明书下载到机器上,并且在配置发生时一切都从本地版本运行。整个过程的时间不应该比您使用 Chef-solo 所经历的时间长得多。
除了你提到的之外,还有其他使用 Chef-solo 的原因。看看你的需求是什么,然后决定什么是最适合你的。