我正在尝试创建一个食谱,它将安装nginx +php,并提供一些好的默认选项,然后我的应用程序菜谱就可以使用这些选项了。
但是Opscode PHP食谱似乎不支持php-fpm,但是我注意到了这个:https://github.com/priestjim/chef-php,我将它签出到一个名为“厨师-php”的食谱文件夹中。
在我的nginx+php食谱的Berksfile文件中,我添加了:
cookbook 'chef-php', path: "../chef-php"
site :opscode
metadata 如果我在那本食谱里运行berks install,我就会看到
Using chef-php (1.2.0) at '../chef-php'包括在输出中,表示一切正常。
因此,如果我接着转到我的应用程序食谱,它有以下Berksfile:
cookbook 'pogo-nginx-php', path: "../pogo-nginx-php"
site :opscode
metadata 并运行berks install,我得到以下错误:
Cookbook 'chef-php' not found in any of the default locations我读过,在解决依赖关系的依赖关系时,Berk大陆架使用metadata.rb而不是Berksfile,如果是这样的话,那么解决这种问题的正确方法是什么呢?或者我刚刚犯了一些愚蠢的错误(完全有可能!)
谢谢。
发布于 2013-12-10 11:30:53
Berk大陆架目前不支持嵌套的Berkshelf文件。
我认为metadata.rb文件用于解析子菜谱的依赖关系是正确的。这意味着您将无法指定源,因为metadata.rb不包含除食谱名称和版本约束之外的任何内容。
在Berk大陆架存储库中,有一个有趣的讨论在一个拉请求中讨论如何避免嵌套的Berksfiles (如何解决指向食谱的冲突路径以及其他问题)。
我用厨师的方式和你一样,也遇到了同样的问题。我使用的解决方法是有一个单一的“应用程序”Berksfile。此文件包括整个应用程序的所有依赖项。对此文件上的berks upload的调用会将所有依赖项上载到主厨服务器。
拉请求讨论中提出的一个解决方法是在chef_api :config文件中在site :opscode之前使用site :opscode。在查看菜谱的操作码社区站点之前,本文将查看您的私人厨师服务器。Onc的效果是,您将需要上传您的定制食谱之前,尝试上传您的食谱,需要它。
发布于 2013-12-09 22:35:04
以下Berksfile:
site :opscode
cookbook "chef-php", github: "priestjim/chef-php"下载以下菜谱:
$ berks install
Installing chef-php (1.2.0) from git: 'git://github.com/priestjim/chef-php.git' with branch: 'master' at ref: '19a5474e14ae2d9d05fc670aeb0cf122c3859acb'
Installing build-essential (1.4.2) from site: 'http://cookbooks.opscode.com/api/v1/cookbooks'
Installing xml (1.2.0) from site: 'http://cookbooks.opscode.com/api/v1/cookbooks'
Installing yumrepo (2.0.0) from site: 'http://cookbooks.opscode.com/api/v1/cookbooks'
Installing yum (2.4.4) from site: 'http://cookbooks.opscode.com/api/v1/cookbooks'https://stackoverflow.com/questions/20479174
复制相似问题