【发布时间】:2014-01-26 19:35:28
【问题描述】:
我正在尝试通过从 How to Write Reusable Chef Cookbooks, Gangnam Style 获取灵感来实现一个包装食谱。我希望在没有管理器应用程序的情况下在我的节点上安装 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"] 等属性不会被覆盖。以上在node["tomcat"]["user"] 中仍有tomcat6 的值。
我是否必须覆盖所有引用["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。
【问题讨论】:
标签: chef-infra cookbook