如何使用虛擬化/LAMP(小型 IaC)自動安裝伺服器?
如何自動化伺服器安裝?哪些基礎設施/系統適合我們的需求?
我們有 10 多台物理伺服器和 100 多台虛擬機,主要是 LAMP。不是太多,但也不是任何可以自己繼續工作的東西。所有伺服器都有 KVM 虛擬化。我們為經常修改的客戶託管各種定制應用程序。因此,這不是一個需要擴展的應用程序。項目團隊直接與客戶和虛擬機合作,這是一項要求。
我們經常遇到的問題是,重新安裝虛擬機/機器會變得很棘手,因為沒有人控制它們最近的更改,這會帶來不穩定的風險,人們會盡可能地推遲它,並且隨著時間的推移問題會變得更大。
我想至少每 3 個月根據需要建立一個重新安裝程序。重新安裝應從程式碼儲存庫和備份開始。這不應該是虛擬機重複。
我們估計,如果手動完成,在目前設置中每 3 個月將花費我們大約 6 個人工月。我們如何才能減少這個時間並增加過程的可重複性?
問題是什麼軟體可以幫助我們自動完成這項任務。它應該盡可能輕。我們不需要自動節點分配。我們只需要重新安裝以盡可能自動化。我們假設每次重新安裝都有人工監督。
我們的節點主要是 LAMP,有兩個系統具有超過 1TB 的結構化數據庫數據、幾個 >200GB 和大約 50 個小型自定義 VM。我們可以輕鬆地安排每個系統的計劃停機時間,因此這不是重新安裝期間的高可用性問題。
我們只需要盡可能地自動重新安裝。
您需要像 Ansible、Saltstack、Puppet 或 Chef 這樣的配置管理框架。
這是用於管理和應用配置的工具。但是,選擇實際工具只是項目的一小部分。
您需要設計和部署流程,通過此工具管理對基礎架構的所有更改。
這需要:
- 培訓人們使用該工具
- 更改系統架構,以便在沒有工具的情況下無法進行更改
- 應對改變人的基本運作方式的阻力
您還應該考慮統一軟體堆棧基礎架構。
如果每個虛擬機都有一些不同的軟體配置,你要麼有
- 您的配置管理程式碼中有很多重複的程式碼,用於不同的安裝
- 複雜的邏輯來選擇如何應用哪個配置
這些因素中的任何一個都會增加大量的維護成本,最終結果可能會變得與您目前的情況一樣痛苦。