筆記這是一個副本Stack Overflow 上的已關閉問題,以及我認為的一個建設性版本伺服器故障中類似的問題。
我經常需要在 下編輯許多配置文件/etc
,但是,我不希望在執行下一次系統升級時這些更改丟失。
現在,我已將所有設定檔以及一些維護腳本存放在/opt/admin
, 和符號連結/etc
目標中,但這似乎不對根據我見過的標準。我想到的另一個選擇是將它們存放在/usr/local
.上述文件稱,它是供系統管理員在本地安裝軟體時使用的。這是我最接近的。然而,/usr/local
當您安裝新的非打包軟體時,也會受到破壞。
關於如何維護這些,是否有標準/很大程度上遵循的最佳實踐?由於這不是討論頁面,因此答案應該是明確的,並用一兩篇文章來支持它們。
筆記我已經包含了我自己的答案,我發現迄今為止最有用。我確實在這裡重新打開了這個問題,以便可以進行討論並獲得更多答案。
答案1
雖然這並不能讓他們分開,等等管理員在追蹤設定檔的更改方面做得非常好。將儲存庫保存在某個地方可以讓您輕鬆地將這些變更還原到新機器上。
答案2
您可以使用組態管理工具來執行此操作。當您添加具有相同角色的伺服器時,這可以很好地擴展。
聽起來您已經製作了一款適合您需求的工具,但您可能很想研究 Chef、Puppet、Ansible、Opsware 或其他設定管理/自動化/編排工具,具體取決於您的需求和預算。
答案3
從我提到的問題的答案來看,似乎有兩種通用的解決方案 - 使用符號鏈接或維護文件列表(請參閱鏈接問題中 ptman 和 Jim 的答案)。我找不到最佳實務文章。
FILES
我建議採用混合解決方案:您只維護一個帶有設定檔清單的簡單檔案(我稱之為)。腳本讀取FILES
實際設定檔並將其符號連結到所選目錄(我稱之為腳本link-config-files.sh
和目錄system-config
)下的重複檔案系統層次結構中。
這樣,您只需將文件維護在一個文件中,該文件易於編輯且不涉及 shell 魔法。system-config
透過符號連結可以存取您關心的設定檔。設定了一個 cron 作業來備份system-config
,因此所有設定檔都會自動備份。另一個 cron 作業會定期運行,link-config-files.sh
因此文件出現(或消失)system-config
和備份的唯一方法就是編輯FILES
.
我發現這是迄今為止最好的解決方案。當然我有偏見。任何狀況之下,這是我的腳本它還連結了一個備份腳本。