我正在尝试使用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]