我需要拥有一个生产服务器的镜像服务器,以便在实施生产之前可以先在该服务器上测试所有内容。
要镜像生产服务器,我需要将当前的 PHP 代码、上传的文件、数据库和 Linux 机器用户(因为我的 PHP 脚本需要这些帐户和主目录)从生产服务器复制到新服务器,并且每次当我需要在暂存服务器上测试任何东西时,我还需要从生产服务器更新所有这些,因为生产服务器会由用户更新。
我可以手动更新除 Linux 用户及其主目录之外的所有内容,因为它们可能会影响系统。有没有办法在生产机器上创建 Linux 机器用户的同时将其复制到另一台机器,或者是否有任何自动登台系统。
谢谢!
答案1
您应该使用自动化系统管理工具(例如 Puppet 或 Chef)来描述生产系统的配置方式,然后只需告诉 Puppet 在暂存系统上使用相同的清单,即可对您的暂存系统进行相同的配置。这还将使配置更改随时间保持同步。
答案2
我认为您可以使用 P2V(数据库除外),我已经在运行生产 Debian 服务器上完成了这项工作,以将它们部署在 VMWare ESXi 4 上(vmware 只是一个例子),效果很好。对于数据库,cron 中的 mysqldump 可以完成这项工作,或者您可以使用复制,但要小心主 mysql 服务器上的负载。网络文件系统也是一个不错的选择,但前提是测试期间不会修改 php 文件。希望它能有所帮助。
答案3
利用这个机会来测试您的备份/恢复计划。
使用常规备份并恢复到测试机器,无论是在隔离网络中还是在被虚拟网络包围的虚拟机上。
一定要计算恢复系统需要多长时间 - 如果系统完全崩溃,您将需要这些信息来计算停机时间。此外,一定要注意自最近一次备份以来输入了多少数据以及输入了哪些类型的数据。
答案4
我认为,重要的一点是两个系统上的 uid 和 gid 编号应该相同,这样您就可以通过 rsync 或甚至 nfs-mount 目录复制文件等。
也许您可以将非系统/非本地用户(uid > 500)存储在 ldap 中,并将两台机器配置为在同一个 ldap 中查找非本地用户?这仍然不会在测试机器上自动创建主目录,但 rsync/nfs 可以处理这个问题。谢谢,
尼克。