Documentation

您如何避免伺服器文件與實際設置不同步?

  • December 30, 2015

我們的環境有相當好的文件(AsciiDoc 格式),最近允許另一個人在不到 30 分鐘的時間內從頭開始重新創建整個設置。

但是,我注意到在初始設置之後,很容易對系統進行一些小的更改(例如:inetd 被禁用,我的 IMAP 伺服器偵聽 ManageSieve 連接的附加埠,將新路由器添加到 exim 配置)不要立即出現在文件中(如果有的話)。

我的想法是通過(部分?)從配置文件和其中的註釋中生成文件來避免這個問題 - 實現這一點的一種方法可能是將某些原始碼管理系統(比如 git)放入/etc並執行一個/usr/local/etc在每次送出時重新生成文件的腳本。但是,我不確定這是否是矯枉過正和/或太難做到正確(畢竟,我不希望我的文件中的源文件的完整副本,而只是差異)。

其他人如何避免伺服器文件過時 - 有沒有一種讓它們自動保持同步的好方法,或者您是否有紀律在修改系統的同時更新文件?

您永遠不會擺脫一些文件,但正如您所暗示的那樣,有些系統可以集成到您的變更過程中以涵蓋很多內容。

  • 使用配置管理工具(如puppetchef)。
  • 以更改受控的方式儲存您的配置。(如gitSVN
  • 確保配置是人類可讀/可訪問的(即純文字,可搜尋的數據庫)

這樣,我們通常會錯過(或不打擾)的較低級別的文件是通過將部署資訊儲存在配置項或程式碼中作為您進行更改的系統的一部分來實施的。這還有一個額外的好處,那就是該過程在未來變得更加可重複。

外部文件仍然需要更新,但它變得非常高級,帶有指向“deploy x”或“deploy y”的指針,而不是長的命令/文件列表。這還使文件更改變得不那麼頻繁和容易,這也意味著它更有可能完成。

同樣在你回家之前,有人可能已經用 puppet 寫了一些東西來管理你想要的東西。

引用自:https://serverfault.com/questions/433923