我有一台 CentOS 生产服务器,目前正在进行开发(我知道这很糟糕)我正在招募一些新开发人员,我想设置适当的开发、暂存和生产服务器。我的问题是如何才能最好地在暂存和本地开发服务器上复制生产服务器环境。对于暂存,我希望它与我的生产服务器几乎完全相同(硬件规格除外)。因此,我想将生产 CentOS 服务器中安装的所有软件包和配置都转移到暂存服务器。对于我的本地开发服务器,我只想拥有测试和运行代码的基本要素。我知道有 puppet 和 chef 之类的东西可以帮助做到这一点,但我没有找到任何可以让我复制当前运行的系统的东西。
提前致谢!
答案1
从包管理的角度来看,你可以将所有已安装的包转储到一个文件中
rpm -qa > /root/packages.txt
将文件传输到“新”机器并运行:
yum -y install $(cat packages.txt)
然后您只需复制您的配置文件和代码即可。
答案2
在任何 UNIX 系统上执行此操作的常用方法是使用适当的转储/恢复软件。对于 Centos,这用于xfsdump/zfsrestore
转储/恢复 XFS 文件系统、dump
ext2/ext3/ext4 文件系统以及restore
从dump
之前转储的恢复包中恢复。
您还应该重新创建 fdisk/gpt/LVM/whatever 布局,并在执行此操作之前格式化文件系统。互联网上有很多资源描述这一点,所以我可能不会在回答范围内讨论这个问题。无论如何,有了转储,您可以在新机器或虚拟环境中进行实验。
整个过程将为您提供转储时系统的精确克隆。巨大的优势之一还包括不受物理磁盘大小影响、在此过程中更改磁盘分区方案/布局的能力,以及可能从方程式中添加/删除 LVM 的能力,具体取决于您的个人观点。
当然,您可以进行增量转储。