1

我开始学习 Chef、Berkshelf 和 Vagrant。我设法使用 Chef Server 部署了一个简单的应用程序,但是当我尝试使用 Chef Solo 时,我遇到了一些错误:

连接被拒绝 - 连接拒绝连接到 /search/node 的 localhost:4000,放弃或无法使用 client.pem

基本上它缺乏加密的数据包和搜索功能。有没有办法模拟这个功能?

我想使用 Chef Solo 进行测试,因为每当我将 Berkshelf 与 vagrant provision 一起使用时,它都会重新上传我所有的食谱,每次大约需要 1-2 分钟。

4

2 回答 2

1

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 的原因。看看你的需求是什么,然后决定什么是最适合你的。

于 2013-06-06T06:59:58.387 回答
0

由于这篇文章在谷歌中排名很好,但答案已经过时,我虽然添加了一些东西:

此限制不再存在,因为 chef-solo 已被 chef-zero 取代。简而言之,Chef-zero 是一个特殊的主厨独奏,有当地的主厨服务员。

现在,这为厨师“非服务器模式”添加了搜索和所有其他功能 - 您只需将 chef-solo 更改为 chef-zero。

像 test-kitchen 这样的工具已经大量使用了这一点,因为它们总是以“无服务器模式”部署在 vagrant box 上进行测试。要升级您的 .kitchen.yml 只需更改/调整您的配置器:

provisioner: name: chef_zero

就是这样

于 2016-12-02T10:21:10.323 回答