Apache-2.4

清理和升級遺留基礎設施

  • September 23, 2020

我是一家小公司的全棧工程師,負責與技術相關的一切,從基礎設施到程式碼。

幾個月前我到了,很快意識到有很多問題,既有程式碼相關的,也有基礎設施相關的,因為自從第一個創建整個基礎設施的技術人員離開後(2 年),公司沒有進行任何更新或升級前)

由於我計劃留在公司,我知道升級伺服器是強制性的,但基礎設施不是我的強項,所以我正在尋找你能給我的任何建議。

由於問題相當廣泛,這是我將如何縮小範圍,這就是我現在所擁有的

Ubuntu 16.04.5 上的 3 台伺服器:2 台作為後端,一台作為負載均衡器伺服器是 mongoDB 集群的一部分(如果重要的話)目前所有這些伺服器上使用的 apache2 版本是 2.4.18(建於 2018/06/ 07) 使用 Ansible 將應用程序部署在伺服器上,這是一件好事。

但是很多 2 年前設置的東西現在都壞了,比如 Nagios、Jenkins 或 SonarQube,問題是沒有關於如何/何時/為什麼設置這些東西的文件。

所以對於這個問題:

我正在研究清理無用的庫,修復/安裝所有必要的監控工具,通過升級等方式修補漏洞……但不會破壞伺服器上執行的應用程序。

你們中有人遇到過類似的情況嗎?你有什麼建議?您是否有任何有用的指南/工具*命令可以通過/使用?

PS:我知道這個問題很廣泛,因為我被這個主題壓得喘不過氣來,我還不知道如何將它正確地分解為簡潔的問題,但如果我能得到一個指向全球方向的答案,我會可能在每個問題上寫下更精確的其他後續問題。

好消息是該作業系統仍受支持,但時間不長(Ubuntu 16.04 將於 2021 年 4 月結束生命週期)。

我首先要確保所有系統都是最新的。

然後我會確保我有一個有效的備份,包括恢復程序的測試(理想情況下這是第一點,但是在沒有更新的 2 年後,您將無法輕鬆安裝備份解決方案的可能性很高)。

接下來,我會檢查每個服務(Nagios、Jenkins 等),檢查它的狀態,決定是要繼續使用它還是要切換到我更熟悉的東西。如果是前者我會修復它,它是後者(或者如果它處於非常糟糕的狀態)我只需使用目前版本的 Ubuntu 重新安裝系統,然後從頭開始重新安裝我需要的東西。

之後我會開始將系統更新到更新版本的作業系統,最好是 20.04。


一些需要計劃的事情:

  • 執行系統更新會導致短暫的中斷(在包更新期間服務會重新啟動,需要重新啟動)。如果可以的話,把這個安排在使用率低的時候
  • 對於形成集群的系統,請確保您在節點之間有足夠的時間以便集群可以恢復(不能更具體,因為我不熟悉 MongoDB)。
  • 選擇一個維護視窗並將其傳達給您的使用者,以便他們事先知道將會出現中斷。
  • 如果可以,請在生產系統上執行主要升級之前設置一個測試環境來測試它們。

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