【发布时间】:2016-02-28 07:20:20
【问题描述】:
我正在尝试使用 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 中看到的,我能够执行 chef 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
在 CentOS 7 上使用 Docker 的 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 There's a bug submitted for it already. 中的ENV[SSL_CERTS_DIR] 或ENV[SSL_CERTS_FILE] 语句我猜这个错误是一个突出的错误。
【问题讨论】:
标签: chef-infra cookbook berkshelf chefdk