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