我已经安装了chef-dk并开始使用berkshelf,但是berks上传失败了

时间:2015-01-08 05:19:41

标签: chef berkshelf chefdk

我已经安装了主厨客户12.0.3,我已经安装了chef-dk版本0.3.5,但为什么chef-dk正在安装主厨客户端版本Chef: 11.18.0.rc.1

  1. 无法将cookbook上传到厨师服务器
  2. berks shelf list正在运行,但berks上传失败
  3. 错误:

    E, [2015-01-08T04:58:36.707534 #22533] ERROR -- : Ridley::Errors::ClientError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
    E, [2015-01-08T04:58:36.708931 #22533] ERROR -- : /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/celluloid-0.16.0/lib/celluloid/responses.rb:29:in `value'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:92:in `value'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/celluloid-0.16.0/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/celluloid-0.16.0/lib/celluloid/proxies/cell_proxy.rb:17:in `_send_
    
        There was an error connecting to the Chef Server
    

4 个答案:

答案 0 :(得分:3)

SSL验证过程失败。按照these instructions修复刀具。对于berkshelf,您可以在config.json中禁用SSL验证,也可以将$SSL_CERT_FILE设置为下载的服务器证书。

答案 1 :(得分:2)

这是与berks相关的问题 您可以在berks配置文件中取消ssl verify选项:

echo '{"ssl": { "verify": false }}' > ~/.berkshelf/config.json

答案 2 :(得分:1)

由于我是修复错误而不是修复症状的忠实粉丝,所以你可以做些什么来确保SSL连接与验证一起工作(比代码陌生人更详细一点):

1)获取服务器证书并将其添加到chef-dk的cacert.pem文件

openssl s_client -showcerts -connect <YOUR_CHEF_SERVER>:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >> /opt/chefdk/embedded/ssl/certs/cacert.pem

2)为ssl libs设置env变量:

export SSL_CERT_FILE=/opt/chefdk/embedded/ssl/certs/cacert.pem

重试上传,它应该有效。

答案 3 :(得分:0)

您还可以在命令行上禁用ssl检查:

berks upload --no-ssl-verify