食谱上的自定义食谱

时间:2016-02-01 20:57:11

标签: linux chef

我正在使用厨师的包裹套餐开发自定义食谱。

我在recipes文件夹下创建了一个名为apache.rb的文件。

然后我通过berks上传了这本食谱,并在一个节点上用食谱[“packages :: apache”]编辑了食谱列表。

当我运行chef-client时,我收到以下错误:

could not find recipe apache for cookbook packages

这是位于recipes /文件夹下的apache.rb:

    package 'Install Apache' do
    case node[:platform]
    when 'redhat', 'centos'
      package_name 'httpd'
      version '2.2.0'
    when 'ubuntu', 'debian'
      package_name 'apache2'
    end
    action :install
    end

1 个答案:

答案 0 :(得分:1)

您可以尝试knife upload . --force,以确保烹饪书在厨师服务器上是最新的吗?

可能已经上传了一个较旧版本的食谱(即在您创建apache配方之前),并且因为您将版本号保持在metadata.rb相同,刀(或berks,取决于什么您用于上传)可能正在跳过上传,认为没有任何改变。

更新:

应该注意的是,如果您确实确定要更新Chef服务器上的现有版本,则应该真正使用上述内容(例如,如果您是还在开发中)。

正如@Tensibai在下面的评论中指出的那样,将版本号压缩到cookbook的元数据上将是一种更好的方法来解决生产环境中的这个问题。