【问题标题】:No such cookbook exception in Chef even if cookbook is available and dependency is set - AWS OpsWorks即使食谱可用并且设置了依赖项,Chef 中也没有此类食谱异常 - AWS OpsWorks
【发布时间】:2021-04-17 06:30:47
【问题描述】:

我是 Chef 和 A​​WS OpsWorks 的初学者。我试图尝试定制食谱。我创建了一个 git 存储库,其中包含一个目录 test_cookbook,并配置了 chef 以从中获取食谱。在其中,我创建了如下文件;

test_cookbook
  |_metadata.rb
  |_recipes
    |_testrecipe.rb

下面是metadata.rb的内容

depends 'magic_shell'

magic_shell 是一本开放的食谱,在厨师超市https://supermarket.chef.io/cookbooks/magic_shell有售

当我尝试执行 testrecipe 时,出现以下错误;

[2021-01-12T09:52:23+00:00] INFO: HTTP Request Returned 412 Precondition Failed: No such cookbook: magic_shell
 
================================================================================
Error Resolving Cookbooks for Run List:
================================================================================
 
 
Missing Cookbooks:
------------------
No such cookbook: magic_shell

谁能告诉我为什么会这样以及如何解决这个问题?

【问题讨论】:

    标签: amazon-web-services chef-infra devops aws-opsworks


    【解决方案1】:

    依赖没有打包。

    根据documentation

    您可以使用 Berkshelf 在本地打包您的说明书依赖项,将包上传到 Amazon S3,并修改您的堆栈以将 Amazon S3 上的包用作说明书源。

    或使用 Berksfile 拉取依赖项并将它们推送到您的 git 源。

    例如,我在 metadata.rb

    中有一个对 opsworks_helpers 的依赖项
     $ grep depends metadata.rb
     depends   'opsworks_helpers'
    

    而我现在的目录结构是这样的

        $ tree
        .
        ├── collectd
        ..
        │   │   └── collectd.rb
        │   ├── metadata.rb
    
        └── opsworks_helpers
            ├── Berksfile
            ├── CHANGELOG.md
            ├── Gemfile
        ...
                        └── serverspec
                            └── spec_helper.rb
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-06
      • 2015-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 2016-07-14
      相关资源
      最近更新 更多