我有 23 台 Web 伺服器 - 我需要清除所有伺服器 - 而不會失去託管在它們上的任何站點上的服務
好的,這是一個挑戰,我在計劃時遇到了麻煩,主要是因為缺乏經驗。然而,這已成為我工作中的一項任務,而且我主要是單獨使用額外的手來完成它。
我對 Linux 很滿意,所有這些伺服器都是 Debian 或 CentOS。有些是 VPS、共享主機,有些是雲虛擬機。我是公司的新手,在過去的幾個月裡只有時間來評估懸而未決的問題。他們都執行plesk或cpanel。
我發現這些伺服器從未配置過,只是在過去兩年中通過非常基本的管理(主要是磁碟空間清理和域/主機管理任務)購買了站點。沒有設置 iptables,也沒有採取安全預防措施,因此這些伺服器充滿了問題。我認為這裡最好的解決方案是重新開始並將我們的託管整合到更少的伺服器上,因為他們剛剛購買了新的共享伺服器。我覺得我們可以在大約 1/4 的集群上支持我們的整個客戶群。
我的問題是我不確定如何計劃這一舉動。這將需要大量移動站點和 DNS 更改。我認為向那些經常處理這類事情或至少有經驗為我指明正確方向的巫師尋求建議是明智的。
泥
對此沒有簡單的解決方案 - 讓所有東西都移動可能會是一條漫長而煩人的道路。我會從幾件事開始,但我在評論中推薦的這本書可能會涉及一些細節。我在這裡看到了四個主要階段——庫存、重新部署、測試和驗收。
- 我現在在託管什麼
如果您還沒有,請對您擁有的和現在使用的進行完整的清單。確定什麼是關鍵資源,以及什麼就坐在那裡。這個關於 SF 的問題可能是一個好的開始,但很自然,您需要針對 debianisque 環境進行調整——也許像這樣。這是最關鍵的階段。
“Web”伺服器並不完全相同 - 檢查您是否正在執行一些執行其自己的 Web 伺服器(如 django)的程序,或者它是否是一個獨立的 Web 伺服器,如 apache。
- 重新評估目前設置以獲得最佳實踐
您是否使用 EOLed 版本的作業系統和其他軟體?可以遷移嗎?你會面臨哪些問題?是否存在任何已知的安全風險?我可以將所有內容標準化為我所有軟體的單一版本嗎?我可以自動化我的部署過程以及自動化程度(看看 puppet 和 chef)。
- 為每個伺服器創建一組測試
列出需要做什麼以及如何測試它
- 決定你要搬到什麼地方
這樣您就可以根據自己的需要選擇最佳的 P2V 或 V2V 流程。
- 決定合併什麼
您可以選擇在一台伺服器上執行之前獨立的幾組服務。您也可以選擇執行虛擬機。執行非常特定於任務的虛擬機(您可以在不影響其他事物的情況下重新啟動虛擬機)和將相似的任務組合在一起(因此您需要維護的邏輯系統更少)都有優勢
- 建立一個隔離的測試環境
通過這種方式,您可以設置和測試系統移動,而不會妨礙生產。您可能能夠在執行 VM 的單個伺服器上執行此操作。
- 有一個用於測試系統的暫存區
將虛擬機移到暫存區並最後一次測試它們
- 利用維護視窗切換到新系統。
為已成功遷移的系統設置一個簡短的 dns ttl,並在維護視窗期間更改域名和其他相關設置。再次測試。部署新伺服器後,請留意任何錯誤
- 不要破壞舊的伺服器安裝,直到你可以驗證新的工作
蓋住自己。如果確實出現問題,在短期內,您總是可以回退到舊伺服器。