Linux
自動 Linux 更新的最佳實踐
我們正在努力為基於 RHEL/RHEL 的伺服器執行自動更新。
**最初的想法:**使用 Puppet,我們禁用預設儲存庫並指向我們自己的。然後,我們
ensure => latest
用於我們想要自動更新的包。**問題:**我們看到一些服務在更新後重新啟動(duh)。
**問題:**有人對如何更好地自動化 Linux 更新和減輕服務自動重啟的策略有任何建議嗎?我們更喜歡包含 Puppet 的解決方案,但如果我們需要使用其他服務,這不會破壞交易。
編輯
**可能的解決方案:**我送出了一個實現@voretaq7 和@ewwhite 建議的許多解決方案。看來這是我暫時要走的路線。如果您有其他建議,請發表評論或送出答案。
您的一般更新策略是合理的:您有一個本地儲存庫(我假設您在開發環境中測試),並且您根據該儲存庫更新所有內容(我假設已知良好)儲存庫。
服務重啟是不可避免的:如果底層程式碼發生了變化,你需要重啟服務才能使更改生效。不這樣做可能會導致更嚴重的後果(執行程式碼與共享庫不同步導致應用程序崩潰)。
在我的環境中,我認為每季度一次的更新檔視窗是每季度一次的“重新啟動所有東西!” 窗戶也是。這種策略的優點是您知道您的伺服器將在重新啟動後恢復,並且您知道它們會正常工作(因為您會定期測試它們)。
我對您的最佳建議是安排軟體發布(也許這意味著您必須使用 puppet“手動”觸發它們),並告知您的使用者計劃的維護/停機時間。
或者(或作為其中的一部分)您可以在您的環境中配置冗餘,以便您可以重新啟動一些機器或服務,並仍然為最終使用者提供服務。這可能無法完全消除任何中斷,但可以幫助將它們最小化。
增加的冗餘還可以在發生硬體故障時保護您,這在足夠長的時間範圍內是不可避免的。