Chef数据包(JSON):如何使用一个包含多个项目的文件

时间:2016-05-09 14:49:19

标签: json chef chef-solo databags

我正在尝试仅使用数据包中的一个文件来包含多个项目(特别是users食谱)。所有示例都显示了隔离的JSON对象。如何在一个文件中存储多个?

我试过

{
  "id": "1"
},
{
  "id": "2"
}

[
    {
      "id": "1"
    },
    {
      "id": "2"
    }
]

{
  "id": "1"
}
{
  "id": "2"
}

我得到了:

Net::HTTPFatalError: users_manage[xxxxx] (common::default line 76) had an error: Net::HTTPFatalError: 500 "Internal Server Error"
/opt/chef/embedded/lib/ruby/2.1.0/net/http/response.rb:119:in `error!'
/opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.8.1/lib/chef/http.rb:145:in `request'
/opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.8.1/lib/chef/http.rb:110:in `get'
/opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.8.1/lib/chef/search/query.rb:158:in `call_rest_service'
/opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.8.1/lib/chef/search/query.rb:87:in `search'
/opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.8.1/lib/chef/dsl/data_query.rb:39:in `search'

我正在使用chef-solo -z和cook-solo-search cookbook。

我不能从一个文件中传递一系列项目吗?

2 个答案:

答案 0 :(得分:0)

您不会在Chef中的一个数据包文件中存储多个项目。只需在单独的文件中指定它。这就是Chef的工作原理。

答案 1 :(得分:0)

你可以尝试这样的事情: { "id": "users", "users": [ { ... user 1 info ... }, { ... user 2 info ... }, { ... user 3 info ... }, ... ] }