我正试图使用Berkshelf
将一本有一些依赖项的食谱上传到我的Chef Server。当我使用chef exec berks upload
时,我会看到一堆不同的错误。我目前的设置是使用最新或接近ChefDK的版本,使用具有以下文件结构的chef_reo。我有多个不同Orgs的转发,我为不同的厨师服务器着迷。我的$HOME/.chef/
中没有任何内容,或者在Windows上,C:chef
甚至不存在。我在我的Windows、CentOS 7 VM和Docker容器之间共享相同的chef_reo,所以这一点没有改变。chef_reo是通过使用chef generate repo
命令生成的。
https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-检查
我的刀.rb的内容如下
https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-00刀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_centros7_berks-rb
在centos7使用Docker的centos7图像,
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也没有"遵守"我的刀中的ENV[SSL_CERTS_DIR]
或ENV[SSL_CERTS_FILE]
声明。rb已经提交了一个bug。我想这个bug是一个突出的bug。
Berkshelf使用自己的配置解析系统,该系统可能无法成功读取knife.rb
。这不是很可能,但其中的一些排列或没有找到正确的文件夹可能是一个促成因素。您可以通过创建一个包含所需数据的Berkshelf config.json
来解决此问题。