假设我要设置一台ubuntu机器并在其上安装一些服务和软件。进一步假设我要设置另一台ubuntu机器,这次没有额外的服务和软件。我知道有一些方法可以创建安装/设置脚本或获取磁盘映像等来构建大量相同的机器,但如果我以编程方式在安装之间采用基于文件的差异并迁移所有文件添加/更改/删除/从完全配置的系统到库存系统,我会有两个相同的工作系统(即完全实现'一切都是文件'linux哲学),或者新配置的系统是否会处于不一致状态,因为简单地传输文件是不够的?我在相同和不一致的定义中排除了主机名引用等。
我问这个是因为我需要创建一个虚拟机,安装一堆软件,并将一堆内容添加到像redmine这样的工具中,并且在不久的将来我将不得不将其镜像到另一个虚拟机上。我不能简单地采用磁盘映像,因为我收到第二个vm的源不会给我那种访问权限,而vm会有不同的规格。此时我也不能使用基于安装脚本的方法,因为这将需要大量开销,不会考虑添加的用户内容,并且我不会知道第一个vm上需要的所有内容,直到它我们的环境很稳定。我上面提到的方法似乎是一个迂回但是合理的方式来完成任务,只要它的假设在理论上是准确的。
感谢。
答案 0 :(得分:1)
假设这两个系统在硬件方面基本相同(即相同的网卡,视频卡等),只需将文件从系统A复制到系统V通常就足够了。事实上,在我的工作场所,我们在许多成功案例中都使用了这个过程作为“穷人的P2V”机制。
如果两个系统具有不同的硬件配置,您可能需要对目标系统进行适当调整才能将其考虑在内。
如果你有基于UUID的坐骑 - 例如,你的/etc/fstab
看起来像这样......
UUID=03b4f2f3-aa5a-4e16-9f1c-57820c2d7a72 /boot ext4 defaults 1 2
...那么您可能需要调整这些标识符。一个好的解决方案是使用基于标签的坐骑(当然,并设置适当的标签)。
某些发行版会将网卡的MAC地址记录为网络配置的一部分,如果MAC地址不同,将拒绝配置您的网卡。在RHEL衍生产品下,只需从配置中删除MAC地址即可。我不认为这将是Ubuntu下的一个问题。