我的application_java cookbook有问题。我将配方添加到application_java cookbook中,将我的.war存档部署到Tomcat。这就是它的样子:
case node['platform']
when 'debian', 'ubuntu'
include_recipe 'apt'
end
include_recipe 'java' # Need described below
application 'ensembleAPI' do
path "/var/lib/tomcat7/webapps/ensembleRestApi.war"
owner "root"
group "root"
mode "0777"
repository 'ensembleRestApi.war'
scm_provider Chef::Provider::File::Deploy
java_webapp
tomcat
end
我认为这没关系。但是当我用 vagrant up 运行所有进程时,它会以跟随错误结束
NameError
---------
uninitialized constant Chef::DSL
Cookbook Trace:
---------------
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/application_java/providers/java_webapp.rb:20:in `class_from_file'
我的厨师版本是11.10.2。
答案 0 :(得分:1)
您需要使用Chef 11+。错误:
NameError
---------
uninitialized constant Chef::DSL
来自line in the cookbook ......
include Chef::DSL::IncludeRecipe
早期版本的Chef中不存在Chef::DSL
类。如果你正在使用Vagrant,听起来你可能正在使用一个Vagrant盒子,它在旧版本中预装了Chef。我建议调查Chef" Bento"项目,其中没有安装厨师的新基础框,您可以使用" vagrant-omnibus"插件,通过Chef的综合软件包获取您想要使用的Chef版本。