我们有两个完全相同的 VM Ubuntu 12.04 服务器。一个用于开发,另一个用作实时服务器。当客户端接受新的开发时,更改必须通过 ftp(这会导致很多混乱)或 rsync 传输到实时服务器。此外,如果有 Linux 更新。我们正在一个服务器上测试它们,然后在实时服务器上重做这些步骤。
这一切都需要大量工作,而且似乎并不是万无一失的。
保持服务器同步的好方法是什么?您如何保持服务器同步?假设我想要同步所有 Linux 软件包(无网络设置 -> 静态 IP)和目录(如 /mnt /home /var/www)?
谢谢,
书
答案1
我的解决方案是使用 Chef/Puppet/Salt 之类的东西。这让您在操作系统中拥有完整的软件包控制权,以及完整的代码修订权。
当您将它与 Git/SVN 之类的东西结合起来时,您可以将开发机器的精确克隆投入生产,以及更新其中的任何内容,并轻松回滚。
答案2
要同步代码,我的选择是使用 git 或 subversion 之类的 vcs。有很多策略可以做到这一点。最简单的方法是将更改提交到开发机器中的仓库,并从生产机器中的仓库中提取更改。
如果出现错误,您可以通过简单的命令获取旧版本的代码。