我想通過從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 cookbook的default.rb
之前加載,這將工作正常。
我使用Berkshelf,Vagrant和廚師獨奏進行開發。在我的食譜的metadata.rb
中,我提到了depends "tomcat"
。
我的自定義食譜位於https://github.com/vaibhavguptaIITD/hcentive-ops/tree/master/hc-tomcat,tomcat社區食譜位於https://github.com/opscode-cookbooks/tomcat。
感謝您的答覆。只是好奇,寫這個包裝食譜的時候,這個過程不是很麻煩。在包裝食譜之前,首先加載包裝食譜的屬性不應該是合乎邏輯的。 – Vaibhav
在https://tickets.opscode.com/browse/CHEF-4837 –
中有關於此行爲的討論此博客文章很好地定義了它http://www.getchef.com/blog/2013/12/03/doing -wrapper-cookbooks-right /希望他們在下一個客戶端修復它。此問題將2行屬性文件轉換爲50行+屬性文件 –