是的,我知道,我們有一個名爲「spiceweasel」的工具來處理所有這些,但我非常好奇,它是如何以及爲什麼它在主廚中以這種方式工作。如何更新節點的狀態而不是覆蓋它?
廚師帶來了一個很好的想法,有一個你描述的環境的整個存儲庫,這個想法是偉大的,但節點似乎並不像我期望的那樣工作。
所以出現這種情況: 您有廚師服務器/工作站設置,並且您的羣集中已有bootstraped
和provisioned
節點。如您所知,每個節點在某個時間間隔運行chef-client
,我將定義。因此,每個節點都會按照隨機間隔重新運行食譜,檢查是否沒有機會,如果發生變化 - 它會變回原處。
因此,您的資料庫中有文件夾nodes/
。而當你做knife upload /nodes
時,所有節點的配置必須是更新了,但現在它完全覆蓋了節點的狀態。那麼爲什麼這是不好的?因爲,假設我編輯了節點配置文件並將其上載到主服務器,則節點狀態將重置,直到下一次chef-client run
操作。我有一個駐留在另一個節點上的cookbook /角色,它檢查特定節點(它擁有特定角色)的IP。有一個很大的機會,當chef-client run
將在其中一個節點上執行時,它不會找到另一個節點的IP,整個食譜將無法運行!
也許是錯誤的食譜使用節點狀態,但嘿,這是所有的地方..所以現在會是不錯的選擇,只是爲了UPDATE節點狀態,而不是將其覆蓋。
所以問題是:是否有可能更新節點的狀態,而不是銷燬它?
這實際上是輝煌!如果沒有任何東西會彈出,我已經接受了你的回答,但我確實對主廚服務器的行爲感興趣。這真的很好,這可以在廚師回購本身! – holms