Jetty 厨师独奏码头食谱属性

Jetty 厨师独奏码头食谱属性,jetty,vagrant,chef-solo,Jetty,Vagrant,Chef Solo,我的Vagrant文件中的chef.json属性似乎被忽略/覆盖 环境:Mac OS X 10.8主机,在VirtualBox 4.18中虚拟化的Ubuntu 12.04来宾。使用Berkshelf作为食谱依赖项,使用Opscode作为所有食谱的食谱 盒子运转良好,但我正在尝试配置更像我下载Jetty并取消归档时的外观,而不是像默认的那样从/usr/share/Jetty到整个文件系统的一堆符号链接 这是我档案中的厨师部分: config.vm.provision :chef_solo do |

我的Vagrant文件中的
chef.json
属性似乎被忽略/覆盖

环境:Mac OS X 10.8主机,在VirtualBox 4.18中虚拟化的Ubuntu 12.04来宾。使用Berkshelf作为食谱依赖项,使用Opscode作为所有食谱的食谱

盒子运转良好,但我正在尝试配置更像我下载Jetty并取消归档时的外观,而不是像默认的那样从
/usr/share/Jetty
到整个文件系统的一堆符号链接

这是我档案中的厨师部分:

config.vm.provision :chef_solo do |chef|

  chef.json = { :java => {
                :install_flavor => "oracle",
                :jdk_version => '7',
                :oracle => {
                  :accept_oracle_license_terms => true 
                }
              },
              :jetty => {
                :port => '8080',
                :home => '/opt/jetty',
                :config_dir => '/opt/jetty/conf',
                :log_dir => '/opt/jetty/log',
                :context_dir => '/opt/jetty/context',
                :webapp_dir => '/opt/jetty/webapp'
              }
            }

 chef.add_recipe "apt"
 chef.add_recipe "mongodb::default"
 chef.add_recipe "java"
 chef.add_recipe "jetty"
end
Chef似乎正在读取
Chef.json
,因为我可以在这个文件中更改Jetty的端口

我曾试图在Jetty cookbook的
attributes/default.rb
中更改这些属性,但也没用


我遗漏了什么?

如果您查看一下jetty/recipes/default.rb中的以下块

jetty\u pkgs=平台的值(
[“debian”,“ubuntu”]=>{
“默认”=>[“jetty”,“libjetty额外”]
},
[“centos”、“redhat”、“fedora”]=>{
“默认值”=>[“jetty6”、“jetty6-jsp-2.1”、“jetty6管理”]
},
“默认值”=>[“码头”]
)
防波堤包装,每件|
打包
操作:安装
结束
结束
对于Debian/Ubuntu,默认配方使用来自官方存储库的DEB包,而不是您想要的(从官方网站下载二进制文件,将其解压到您的首选位置)

因为DEB包有自己的规范(运行
dpkg-L jetty
查看它们的文件/目录结构),所以我认为这就是为什么chef.json中的属性重写不起作用的原因

再次运行配置时,可以启用调试输出以查看更多信息

VAGRANT\u LOG=debug VAGRANT up

注意:如果您希望Jetty以您喜欢的方式安装,那么最好编写自己的食谱,下载二进制文件和untar设置权限,并执行其他操作;-)