Berkshelf在将菜谱上传到Chef-Server

时间:2015-11-17 01:11:36

标签: chef cookbook berkshelf chefdk

我正在尝试使用Berkshelf将具有一些依赖关系的cookbook上传到我的Chef-Server。当我使用chef exec berks upload时,我遇到了一堆不同的错误。我目前的设置是使用带有以下文件结构的chef_repo的最新版本或接近ChefDK版本。我为多个不同的Orgs提供了多个存储库,我为不同的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

正如你在这个要点中看到的,我能够做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

在使用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也没有“尊重”我的刀中的ENV[SSL_CERTS_DIR]ENV[SSL_CERTS_FILE]语句.rb There's a bug submitted for it already.我想这个bug是一个突出的bug。

1 个答案:

答案 0 :(得分:1)

Berkshelf使用自己的配置解析系统,可能无法成功读取knife.rb。这不太可能,但是那些或不查​​看正确文件夹的一些排列可能是一个促成因素。您可以通过创建包含所需数据的Berkshelf config.json来使其成为非问题。