我正在尝试从如何编写可重复使用的厨师食谱,江南风格中获取灵感来实现一个包装食谱。我希望在没有管理器应用程序的情况下在我的节点上安装 tomcat 7。我创建了一个包含以下attributes/default.rb
文件的包装食谱:
default["tomcat"]["base_version"] = 7
default["tomcat"]["deploy_manager_apps"] = false
中提供的默认属性tomcat/attributes/default.rb
是:
default["tomcat"]["base_version"] = 6
#other attributes
default["tomcat"]["deploy_manager_apps"] = true
default["tomcat"]["user"] = "tomcat#{node["tomcat"]["base_version"]}
我希望在所有属性中覆盖这些值。但是,诸如此类的属性["tomcat"]["user"]
不会被覆盖。以上仍然具有tomcat6
in的值node["tomcat"]["user"]
。
我是否必须覆盖所有引用的属性["tomcat"]["base_version"]}"
?如果我attributes/default.rb
在 tomcat 食谱之前加载,default.rb
这会很好。
我正在单独使用 Berkshelf、Vagrant 和 Chef 进行开发。在metadata.rb
我的食谱中,我提到过depends "tomcat"
。
我的自定义食谱位于https://github.com/vaibhavguptaIITD/hcentive-ops/tree/master/hc-tomcat,tomcat社区食谱位于https://github.com/opscode-cookbooks/tomcat。