Ruby 厨师独奏和烹饪书路径:多条路径不可行

Ruby 厨师独奏和烹饪书路径:多条路径不可行,ruby,chef-infra,Ruby,Chef Infra,与文档相反…在我的solo.rb文件中,以下内容不起作用: root = File.absolute_path(File.dirname(__FILE__)) cookbook_path [ root + "/cookbooks",root + "/site-cookbooks", root + "/berks-cookbooks" ] 这是可行的,但无法达到目的,因为我需要在cookbook路径中添加其他两个目录: root = File.absolute_path(File.dirna

与文档相反…在我的solo.rb文件中,以下内容不起作用:

 root = File.absolute_path(File.dirname(__FILE__))
 cookbook_path [ root + "/cookbooks",root + "/site-cookbooks", root + "/berks-cookbooks" ]
这是可行的,但无法达到目的,因为我需要在cookbook路径中添加其他两个目录:

root = File.absolute_path(File.dirname(__FILE__))
cookbook_path root + "/cookbooks"
下面是一个示例角色

{
    "name": "coordinator_do_server",
    "environment":{"git_repos":[]},
    "java":{ "install_flavor":"oracle","jdk_version":"7"},
    "run_list": ["recipe[build-essential]"
    ]
}
我得到的错误如下:

Starting Chef Client, version 11.14.2

================================================================================
Error expanding the run_list:
================================================================================

Unexpected Error:
-----------------
TypeError: can't convert Array into String

[2014-12-07T18:22:07+08:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
Chef Client failed. 0 resources updated in 2.259210544 seconds
[2014-12-07T18:22:07+08:00] ERROR: can't convert Array into String
[2014-12-07T18:22:07+08:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
我该如何解决

Generated at 2014-12-08 00:12:42 +0800
TypeError: can't convert Array into String
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/environment.rb:248:in `directory?'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/environment.rb:248:in `load_from_file'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/environment.rb:241:in `load'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/node.rb:380:in `apply_expansion_attributes'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/node.rb:369:in `expand!'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/policy_builder/expand_node_object.rb:135:in `expand_run_list'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/policy_builder/expand_node_object.rb:122:in `build_node'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/client.rb:259:in `build_node'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/client.rb:420:in `do_run'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/client.rb:213:in `block in run'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/client.rb:207:in `fork'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/client.rb:207:in `run'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/application.rb:237:in `run_chef_client'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/application/solo.rb:226:in `block in run_application'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/application/solo.rb:218:in `loop'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/application/solo.rb:218:in `run_application'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/application.rb:55:in `run'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/bin/chef-solo:25:in `<top (required)>'
/usr/local/bin/chef-solo:23:in `load'
/usr/local/bin/chef-solo:23:in `<main>'
于2014-12-08 00:12:42+0800生成
TypeError:无法将数组转换为字符串
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/environment.rb:248:在“目录”中
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/environment.rb:248:in'load_from_file'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/environment.rb:241:in'load'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/node.rb:380:在“应用扩展属性”中
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/node.rb:369:in'expand!'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/policy\u builder/expand\u node\u object.rb:135:在“expand\u run\u list”中
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/policy\u builder/expand\u node\u object.rb:122:in'build\u node'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/client.rb:259:in'build_node'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/client.rb:420:in'do_run'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/client.rb:213:in'block in run'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/client.rb:207:in'fork'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/client.rb:207:in'run'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/application.rb:237:in'run\u chef\u client'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/application/solo.rb:226:在“运行中的块应用程序”中
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/application/solo.rb:218:in'loop'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/application/solo.rb:218:in'run_application'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/lib/chef/application.rb:55:in'run'
/usr/local/lib/ruby/gems/1.9.1/gems/chef-11.14.2/bin/chef-solo:25:in`'
/usr/local/bin/chef solo:23:在“加载”中
/usr/local/bin/chef solo:23:in`'

问题在于
chef\u repo\u路径
cookbook\u路径
中导出其默认值,然后默认的
环境路径
基于
chef\u repo\u路径
。要修复此问题,请将
chef\u repo\u路径根添加到配置中