假设我有两个 Web 服务器(在数据中心中),A 和 B。我无法物理访问任何服务器,只能进行 root ssh 访问。
A 是一台具有旧硬件的旧服务器,但其配置符合我的要求(安全性、设置等),而 B 是一台具有较新硬件的新服务器(与 A 完全不同),并且全新安装了 CentOS(例如)。
将服务器 A 克隆到服务器 B 的最佳方法是什么,以便将我的所有文件、设置、应用程序从 A 移动到 B?
答案1
如果较新的服务器运行相同的操作系统版本,则可以从较新的服务器运行一个复制大多数文件的简单脚本:
#!/bin/bash
# Source
SSHSERVER="[email protected]"
SSHPORT="22"
EXCLUDE="/boot/
/lib/modules/
/etc/modules/
/etc/lilo.conf
/etc/fstab
/etc/hostname
/etc/hosts
/etc/mtab
/etc/shadow
/etc/shadow-
/etc/ssh/
/proc/
/dev/
lost+found/
/etc/network/interfaces
/root/
/sys/
/run/
temp/
tmp/
log/"
printf '%s\n' $EXCLUDE > exclude.txt
rsync -avz --exclude-from=exclude.txt -e "ssh -p $SSHPORT" $SSHSERVER:/ /
我过去曾使用过此脚本复制 Debian 服务器,效果很好,但apt-get install -f
有时需要进行一些手动(重新)配置。因此,请谨慎使用,最好先在测试环境中使用。
答案2
迁移,而不是克隆。不同的版本、不同的硬件、不断发展的最佳实践将需要略有不同的配置。
花费一些精力来创建文档和自动化,以便从头开始配置全新的操作系统安装。这可能是一个注释良好的脚本或剧本。使用它来部署。
如果硬件或虚拟机几乎相同,则可能是克隆。复制整个操作系统磁盘并重新 IP。您将继承旧安装的所有怪癖,但它是相同的。