重新IP化/迁移服务器和应用程序的最佳实践

这个问题中的一部分将是高度特定于应用程序的,但是当您将应用程序从一个服务器/平台迁移到另一个服务器/平台并将服务器组成一个networking段时,您会采取哪些方法?

对于不能被重复使用的应用程序(许多存在于这个类别中),一般的答案是nuke和pave(或扩展一个可聚集的应用程序,然后删除需要被“移动”的段)。

对于“正常”应用程序(httpd,邮件,目录服务等),在移动之前,移动过程中和移动之后执行的检查是什么,以确保移植的应用程序/服务器的健康状况?

Apache的一个例子:

  1. 备份httpd conf目录
  2. 更改httpd conf文件以使用服务器的新IP地址
  3. 更改(或添加)服务器的IP
  4. 重启Apache
  5. validationWeb服务器仍然提供页面
  6. 重启服务器
  7. validation环境恢复健康

我只需要做大约4-5个重新编号的项目,把所有这一切用一桶盐:)

我总是从当前环境的重启testing开始:如果你不能把所有的东西都拿下来,重新进行备份,迁移是一个梦想。

在重新启动testing之后是一个广泛的防火墙审计(假设你的networking是分开的,而且所有的都不在同一个网段/子网上):找出哪些服务器需要相互通信,确保你完全理解防火墙规则让交stream发生。
防火墙审计还应该包括诸如NAT /双向NAT /端口映射(诸如可公开访问的邮件/networking服务器之类的东西)。
从这个防火墙审计和对你的环境的一个很好的理解,你可以为新的IP空间提出新的防火墙规则。 如果你正在迁移的环境已经有一段时间了,你可能会发现(并closures)多年来一堆漏洞。


为了迁移单独的应用程序(以及操作系统configuration),你的Apache的例子总结得很好。 作为OS /应用程序不可知论,因为我可以做到这一点:

  1. 备份您要触摸的所有内容(configuration文件,DNS等)到离线存储。
    (如果您不确定将要触及的事情,请对整个该死的环境进行全面的备份!)
  2. 更新防火墙规则。
  3. 更新名称服务(DNS,NIS, /etc/hosts等)。
    如果您不使用DNS,现在可能是部署它的好时机…
  4. 编辑系统configuration文件(不要忘记像resolv.conf这样的东西)
    (在你编辑之前,先编辑每个文件的本地副本, 尤其是如果你忽略了上面的#2)!
  5. 编辑应用程序configuration文件,与#3一样的注意事项
    (Postgres网站特别注意pg_hba.conf的IP限制)
  6. 重新启动机器至less一次,以确保其重新启动。
  7. 在所有事情都被迁移之后,将环境降低并重新备份
    (包括防火墙 – 以防万一你错过了#5的东西)

作为一个通用命令,我首先迁移networking资源(switch / router / fw configs),然后是名称服务(DNS)和authentication/授权(LDAP,NIS,AD等),然后“在重新启动“,这通常工作得很好。