1

我正在尝试使用Berkshelf将具有一些依赖项的食谱上传到我的 Chef-Server。当我使用chef exec berks upload时,我会遇到一堆不同的错误。我当前的设置使用具有以下文件结构的 chef_repo 使用最新或接近的 ChefDK 版本。我为不同的 Chef-Servers 挂钩的多个不同的组织有多个存储库。我没有任何东西$HOME/.chef/,或者在 Windows 上,C:\chef\甚至不存在。我在我的 Windows、CentOS 7 VM 和我的 Docker 容器之间共享同一个 chef_repo,所以这没有改变。chef_repo 是使用chef generate repo命令生成的。

https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-chefdk_repo_setup

我的knife.rb的内容如下

https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-00-knife-rb

当我尝试使用Berkshelf.

CMD,使用Cmder

https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-chefdk_cmder_berks-rb

正如你在这个 Gist 中看到的,我能够做 achef exec knife ssl check并且它成功了。

Cygwin

https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-chefdk_cygwin_berks-rb

在 CentOS 7 上,

https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-chefdk_centos7_berks-rb

在使用 Docker 的 CentOS 7 映像的 CentOS 7 上,

https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-chefdk_docker_centos7_berks-rb

使用纯 Ruby 安装,并安装 Chef RubyGem 和 Berkshelf gem,产生了相同的错误,除了一些 webagent cookie 的部分,我认为这很好。

--编辑2016-02-27--

作为临时工作,我必须使用--no-ssl-verify才能让 berks 上传食谱。但是,这似乎是一个错误ridley-4.3.2。然后berks 也没有“尊重”我的knife.rb 中的ENV[SSL_CERTS_DIR]or语句。已经为它提交了一个错误。我想这个错误是一个突出的错误。ENV[SSL_CERTS_FILE]

4

1 回答 1

1

Berkshelf 使用自己的配置解析系统,可能无法knife.rb成功读取您的文件。这不太可能,但其中的一些排列或没有在正确的文件夹中查找可能是一个促成因素。您可以通过创建包含config.json所需数据的 Berkshelf 来解决此问题。

于 2015-11-17T03:42:31.240 回答