用于克隆ubuntu服务器的脚本/工具

我已经安装并配置了一个ubuntu服务器(安装其他软件包并对某些配置文件进行修改)。 现在我想安装一个几乎相同的系统,它只有一个不同的IP,主机名或类似的东西。 是否有任何脚本或工具可以自动执行此过程?

我不是在寻找像Clonezilla这样的东西,它可以制作图像克隆。 我不是在寻找像remastersys这样的东西,它会创建一个ISO图像。 我想要这样的东西: http : //www.debianadmin.com/clone-your-ubuntu-installation.html或者这个: http : //ubuntuforums.org/showthread.php?t = 525660 ,但更完整和自动。

基本上,此工具应扫描现有系统并提取已安装的软件包列表。 然后将系统上的配置文件与每个软件包的默认配置文件进行比较,并生成不同的差异。 但是,它还应该识别每个服务器的不同配置(如IP,主机名等),并提供自定义它们的选项。

所有这一切都应该自动完成,输出应该是当前系统的一个非常小的“DNA”。 然后应该使用debootstrap之类的工具来安装新系统,并且应该对“DNA”上描述的更改应用它:安装新软件包并修改其配置文件。


关于动机:

我在云中管理一个虚拟Web服务器,我随着时间的推移做了很多配置:与安全性,不同的包等有关。现在,如果我想构建另一个与第一个具有相同function和目的的服务器,那么繁琐的方式是重新审视所有的安装和配置,但我仍然可能会遗漏一些东西。 我认为可能有任何工具可以在服务器的当前状态和刚刚安装的服务器的初始状态之间形成类似差异的东西。 这个差异也可以帮助我审核当前的系统,我并不完全记得我触及过的所有东西并且搞砸了。

如果他们想建立像我这样的系统,这样的差异也可以作为我可以与朋友分享的食谱。 它比传递巨大的tarball或图像更方便,更安全。


建议用于克隆的工具:

建议的一些工具是:

  • Mondorescue
  • Clonezilla的
  • Remastersys
  • TKLBAM
  • 快照
  • 皮匠
  • 木偶
  • Cfengine的
  • 厨师

但它们都不适合我的情况。

如果两个系统安装了相同的软件包,并且你对它们的/ etc目录做了差异,你基本上会得到它们之间的所有配置变化(可能不是它们的100%,但仍然非常准确)。 那么,我对审计我的系统所做的是:

  • 使用debootstrap安装最小系统(类似于此处描述的内容: http : //dashohoxha.blogspot.com/2013/02/how-to-set-up-chroot-environment-for.html )。

  • 确保我在chroot系统上安装了主系统上安装的所有软件包(如下所述: http : //www.debianadmin.com/clone-your-ubuntu-installation.html )

  • 在两个系统的/ etc dirs之间进行区分。

当然,这个差异不能轻易用于安装和配置另一个系统,但知道差异在哪里以及它们是什么,可以帮助构建一个tklpatch(如下所示: https : //github.com/dashohoxha/B-Translator / tree / master / tklpatch ),这当然不是很容易完成,需要一些工作。

然后,我可以分发/发布这个tklpatch,每个人都可以轻松地构建一个与我的系统非常相似的系统。

我想你可以使用dpkg --get-selections 。 然后在新服务器上安装这些软件包。 您可以从旧服务器复制的配置文件。 它不是无痛的,但它是可以访问的。

资源