【问题标题】:What are likely root causes of "Failed to list data bag items in data bag"?“未能列出数据包中的数据包项”的可能根本原因是什么?
【发布时间】:2012-04-25 06:09:10
【问题描述】:

我不断从 Chef 那里收到此错误,但找不到任何文档或其他有此错误的人。

可能的根本原因是什么?

【问题讨论】:

  • Chef 在数据包中找不到项目时似乎会发生这种情况。也许您可以使用 data_bag_items 对其进行调试? 12
  • 你能粘贴 chef-client -l 调试输出吗?
  • 这里真的不够回答这个问题。
  • 你也可以考虑去Chef IRC(wiki.opscode.com/display/chef/IRC),where你可以以交互方式解决这个问题)。我发现它是一种宝贵的资源。

标签: ruby chef-infra


【解决方案1】:

更多信息在这里会有所帮助。当您看到此内容时,您打算采用哪种工作流程?

我将假设这不是一个刀子呼叫。我试图在 chef-gem 中围绕您的错误来源进行一些调试,并调用数据包列表和数据包显示。似乎都没有遇到 mixin 代码。

以下是你在 mixin/language 下的 chef gem 中的错误来源

def data_bag(bag)
  DataBag.validate_name!(bag.to_s)
  rbag = DataBag.load(bag)
  rbag.keys
  rescue Exception
    Log.error("Failed to list data bag items in data bag: #{bag.inspect}")
  raise
end

现在我不知道是什么在访问该 mixin 代码,因为 gem 中对 data_bag() 的所有其他引用都引用了 data_bag_item 对象周围的代码。

这是您创建的自定义代码吗?您是否有可能引用了错误的模块?

【讨论】:

    【解决方案2】:

    当 Chef 找不到数据包“id”时,您通常会收到此错误

    假设我要加载以下data_bag

    data_bags
        apps
            mywebserver.json
    
    
    apps
        recipes
            default.rb
    
    [mywebserver.json]
    {
         "id": "mywebserver"
    }
    
    [default.rb]
    data_bag_item("apps", "mywebserver")  # The id specified in the json
    

    我相信 chef 不关心 data_bag_item 文件名,而只关心数据包项 json 文件之一中指定的“id”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-08
      • 2017-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-04
      • 2016-11-12
      • 2013-02-16
      相关资源
      最近更新 更多