Ip
重新 IP/遷移伺服器和應用程序的最佳實踐
其中一些問題是高度特定於應用程序的,但是當您希望將應用程序從一個伺服器/平台遷移到另一個伺服器/平台以及將伺服器從一個網段遷移到另一個時,您會採用什麼方法?
對於無法重新 IP 的應用程序(許多存在於此類別中),一般的答案是 nuke 和鋪平(或擴展可集群的應用程序,然後刪除需要“移動”的段)。
對於“正常”應用程序(httpd、郵件、目錄服務等),您在移動之前、期間和之後執行哪些檢查以確保遷移的應用程序/伺服器的健康?
以 Apache 為例:
- 備份 httpd conf 目錄
- 更改 httpd conf 文件以使用伺服器的新 IP 地址
- 更改(或添加)伺服器 IP
- 更新 DNS 條目
- 重啟阿帕奇
- 驗證 Web 伺服器仍然提供頁面
- 重啟伺服器
- 驗證環境恢復健康
我只需要做大約 4-5 個大的重新編號項目,所以用一桶鹽來處理所有這些:)
我總是從目前環境的重新啟動測試開始:如果您不能將其全部關閉並在工作順序中重新備份,那麼遷移是一個白日夢。
重啟測試之後是一個廣泛的防火牆審核(假設您的網路被劃分並且所有內容都不在同一個網段/子網上):找出哪些伺服器需要相互通信,並確保您徹底了解防火牆規則讓這種交流發生。
防火牆審計還應包括諸如 NAT/雙向 NAT/埠映射之類的內容(針對諸如可公開訪問的郵件/Web 伺服器之類的內容)。
通過防火牆審核和對您環境的充分了解,您可以為新 IP 空間提出新的防火牆規則。如果您要遷移的環境已經持續了一段時間,您可能還會發現(並關閉)多年來潛入的一堆漏洞。
對於遷移單個應用程序(和作業系統配置),您的 Apache 範例可以很好地概括。正如我可以做到的那樣,與作業系統/應用程序無關:
- 將您要接觸的所有內容(配置文件、DNS 等)備份到離線儲存。
(如果您不確定要觸及什麼,請完整備份整個該死的環境!)- 更新防火牆規則。
- 更新名稱服務(DNS、NIS
/etc/hosts
等)。
如果您不使用 DNS,現在可能是部署它的好時機…- 編輯系統配置文件(不要忘記 resolv.conf 之類的文件)
(在編輯之前為每個文件製作一個本地副本,以防萬一搞砸了,特別是如果你忽略了上面的#2!)- 編輯應用程序配置文件,注意事項與 #3 相同
(Postgres 站點特別注意 IP 限制pg_hba.conf
)- 至少重新啟動機器一次,以確保它在重新啟動後仍然存在。
- 遷移所有內容後,將環境關閉並再次備份
(包括防火牆-以防萬一您錯過了#5中的某些內容)作為一般順序,我首先遷移網路內容(交換機/路由器/fw 配置),然後是名稱服務 (DNS) 和身份驗證/授權(LDAP、NIS、AD 等),然後是“按照應有順序的所有其他內容在重新啟動期間啟動”,這通常效果很好。