我已经安装了 chef-dk 并开始使用 berkshelf 但berks 上传失败
Posted
技术标签:
【中文标题】我已经安装了 chef-dk 并开始使用 berkshelf 但berks 上传失败【英文标题】:I have installed chef-dk and started using berkshelf but berks upload failed 【发布时间】:2015-03-06 04:07:25 【问题描述】:我已经安装了 chef 客户端 12.0.3
,在它之上我已经安装了 chef-dk 版本 0.3.5
但是为什么 chef-dk 正在安装 Chef 客户端版本 Chef: 11.18.0.rc.1
-
无法将食谱上传到厨师服务器
berks 货架列表正在运行,但 berks 上传失败
错误:
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
【问题讨论】:
【参考方案1】:您也可以在命令行中禁用 ssl 检查:
berks upload --no-ssl-verify
【讨论】:
【参考方案2】:这是一个与 Berks 相关的问题。 您可以在 berks 配置文件中取消 ssl 验证选项:
echo '"ssl": "verify": false ' > ~/.berkshelf/config.json
【讨论】:
感谢分享。为我完成了这项工作【参考方案3】:由于我是修复错误而不是修复症状的忠实拥护者,因此您可以做些什么来确保 SSL 连接与验证一起工作(比 coderanger 更详细一点):
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 库的环境变量:
export SSL_CERT_FILE=/opt/chefdk/embedded/ssl/certs/cacert.pem
重试您的上传,它应该可以工作。
【讨论】:
【参考方案4】:它未能通过 SSL 验证过程。按照these instructions 修复它的刀。对于 berkshelf,您可以在 config.json
中禁用 SSL 验证,或者您可以将 $SSL_CERT_FILE
设置为下载的服务器证书。
【讨论】:
忽略设置在~/.berkshelf/config.json(或HOME%/.berkshelf/config.json) "ssl" : "verify" : false
以上是关于我已经安装了 chef-dk 并开始使用 berkshelf 但berks 上传失败的主要内容,如果未能解决你的问题,请参考以下文章
Elastic:使用 Docker 安装 Elastic Stack 8.0 并开始使用