Chef
使用 chef,我如何確保在客戶端之前根據伺服器配置伺服器?
我正在部署一個分佈式服務,它在少數節點上使用 NFS 共享。在這種情況下,有一個導出 NFS 共享的主節點和一些必須掛載此導出的從屬節點。
使用 chef,我可以配置主節點。主節點完成後,我可以並行配置從節點。但是,如果 chef-client 在所有節點上(大致)同時啟動,則從伺服器失敗,因為伺服器上的 NFS 共享尚不存在。
使用chef,如何確保在slave啟動之前完成master的配置?我想從伺服器暫停(並且可能在幾分鐘後超時)等待 NFS 導出可用是可以接受的,儘管最好能保證主伺服器已完全配置(所有配方/角色) 在允許奴隸上的廚師客戶繼續之前。
一般來說,最好的方法是不確保一切。如果依賴項不可用,請以優雅失敗的方式編寫您的食譜程式碼,然後使用 chef-client 的守護程序模式(或從 cron 執行),以便它會根據需要繼續嘗試直到成功。