簡體   English   中英

Chef:如何僅存儲明確包含的配方的屬性

[英]Chef: how to store only attributes for explicitly included recipes

我正在修復Redis食譜,其中包含2種不同的食譜+默認食譜。 在默認配方上,我添加一個PPA存儲庫並執行apt-get更新內容。 我想做的是能夠保留在節點上,僅保留相應已啟用配方的屬性:

如果該節點包括“服務器”配方,則存儲來自attributes / server.rb的默認值如果該節點包括“客戶端”配方,則存儲來自attributes / client.rb的默認值

盡管包含了食譜,但文檔尚不清楚上述內容是否會發生還是將兩者存儲。

我見過的人建議是將僅特定於配方的,不適合“默認”配方的node.default [...]定義移動到配方本身。 我認為這是不合邏輯的。

實現這種分離的“最佳實踐”是什么?

Chef的文檔中的關鍵語錄是:“針對某個節點運行食譜時,將在節點對象的上下文中評估所有屬性文件中包含的屬性。” (強調我的)。 您只能通過在食譜中使用node。(scope)來實現您正在談論的內容。

客戶食譜中需要的東西

node[:redis][:client][:foo] = "bar"

對於服務器配方中需要的東西

node[:redis][:server][:foo] = "bar"

出於好奇,您正在使用哪種Redis配方?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM