“复制”正在运行的服务器

而不是使用Ansible或其他configurationpipe理工具,在这个Ubuntu 16.04服务器的pipe理员经历了几个月之后,我对系统进行了很多修改:更改了/ etc中的configuration文件,安装的软件包,启用和禁用了apache2模块,等等。

有没有一种自动的方式来创build一个脚本或什么的,当执行干净的安装Ubuntu 16.04(但如果它在任何Linux上工作甚至更好),可以重新创build一个服务器是几乎完全一样的我一现在有工作和运行?

编辑:不幸的是,这不是一个虚拟机,我可以克隆。

现在就行业标准来说,没有什么可以做的了。 如果你真的需要脚本来为你做好准备,那么我会:

  • 将所有已安装的软件包与dpkg -l及其版本一起转储。
  • 用ubuntu 16.04创build一个新的服务器,安装所有的软件包在相同的版本。
  • 在新服务器上安装etckeeper
  • rsync所有/etc目录中的所有/etc目录从原始服务器复制到“干净”目录 – 确保删除原来存在的“干净”文件中的文件( a2dismod只是删除/ etc / apache2 / modules中的符号链接启用目录,所以这将是另一种方式做同样的) – 在rsync有一个选项来做到这一点。

在完成之后,你应该提供一个/etc/目录的git差异(感谢etckeeper) – 这可以简单地(?)转换成一个patch脚本 – 但它只能在所有包版本都准确与原始服务器相同。 然而,这将是一个真正的模型/ puppet / chef一个很好的基础

沿着这条路线,你应该能够创build一些自动化来准备具有类似configuration的新服务器。

还有另外一个select,如果“行业标准”不关心你 – 只需要rsync / tar整个服务器(你需要停止数据库,或者在rsync忽略它们以避免不一致的文件结构),这样你就可以通过干净的安装的Ubuntu 16.04在另一个位置得到完全相同的机器。

我能想到的唯一方法是:

  • find所有已安装软件包的列表并重新安装到目标机器上; 然后find所有更改/添加的configuration文件,并使用tar / rsync / any将其复制到目标机器上;

  • 如果您不能/不会通过直接RAW副本进行克隆,则可以使用tar / rsync(具有适当的参数)将源数据完全克隆到新机器。

  • 您可以使用文件系统转储工具(即:dump2fs,xfsdump,fsarchiver等)来转储整个文件系统,将其恢复到新机器上;

  • 使用clonezilla / dd / ddrescue克隆物理磁盘(克隆完全不需要虚拟环境)并在目标机器上恢复映像。 这需要源卷的livecd引导源机器或LVM / BTRFS / ZFS快照。