-1
我在我的食譜中有一個自定義資源,它覆蓋了一個節點屬性。當我在相同配方的後面的資源部分中使用該節點屬性時,它將使用cookbook屬性文件中設置的默認屬性,而不是在自定義配方資源中設置的值。在chef-client運行後,節點上的屬性值顯示預期的重寫值。什麼導致配方不使用overriden屬性?廚師食譜資源中的node.override屬性被設置但未被使用
我在我的食譜中有一個自定義資源,它覆蓋了一個節點屬性。當我在相同配方的後面的資源部分中使用該節點屬性時,它將使用cookbook屬性文件中設置的默認屬性,而不是在自定義配方資源中設置的值。在chef-client運行後,節點上的屬性值顯示預期的重寫值。什麼導致配方不使用overriden屬性?廚師食譜資源中的node.override屬性被設置但未被使用
我假設你正在試圖重寫node['something']['content']
和你的食譜是這樣的:
my_resource 'a name' do
action :run
end
file '/tmp/file' do
content node['something']['content']
end
在您的自定義資源的:run
動作定義的代碼是在收斂時間,而在文件中使用的屬性node['something']['content']
執行資源在編譯時被讀取。
作爲參考,一個廚師的客戶端運行可以被描述爲:
:run
操作代碼的位置,以及您的屬性被覆蓋的位置)。
這解釋了我看到的行爲完美 - 謝謝!我所做的是包含邏輯來覆蓋配方中的節點屬性而不是資源,並將該配方包含在需要新值的默認配方中,這看起來效果更好。 – rmulay