以前没有问过这个问题,虽然我已经搜索过,发现没有任何东西像这样......
首先,我的问题:我在弹性Load Balencer后面运行了2个EC2 linux实例。它运作良好!非常满意。
在服务器上放置/更新应用程序代码时,我的问题就开始了。目前,我正在修改我本地机器上的代码。压缩它,将其上传到我的个人主机,然后Wget'ing到每个ec2实例并解压缩..
有更简单的方法吗?我能够创建某种跨越两个实例的共享文件夹吗?
简而言之:在2台服务器上更新WWW根目录的简单方法是什么?
非常感谢,
汤姆。
答案 0 :(得分:4)
1。解决此问题的一种方法是使用continuous integration可以使用rsync
传输文件并在服务器上构建项目,这不仅仅是然而。
有很多可用的插件(PHPUnit,代码覆盖率,代码分析等):
如何:
参考:
2。您需要代码版本控制,它可以帮助您维护稳定的代码和让他们在所有环境中平等地交付。
有两个主要版本系统可用,一个是Git& Subversion
可以做些什么(适合您的情况):
svn add <files>
&amp;将所有代码转储到此项目中svn commit .
svn checkout <repository-url-to-project>
,它将获取计算机上的代码。如果您对任何文件进行了更新/更改,则:
svn update <modified-or-newly-created-file-path>
。在任何其他EC2机器中执行以下步骤。
<强>的cheatsheet 强>
GIT - http://help.github.com/git-cheat-sheets/ SVN - http://www.abbeyworkshop.com/howto/misc/svn01/
答案 1 :(得分:0)
使用Puppet等工具来维护您的服务器配置。
答案 2 :(得分:0)
@tornup
这是一个更可行的解决方案。如果您不熟悉Jenkins
或Puppet
,则可以执行以下操作:
转到bitbucket.com
并启动存储库
在那里创建一个存储库
使用sourcetree将本地源代码推送到该存储库
从您的两台机器上执行git pull
(按照bitbucket说明)
之后,修改本地代码,进行多次提交以进行测试
然后转到两台服务器并发出git pull
........................................ bitbucket.repo/your main source
...........local...server1.server2 share the same source as bitbucket repo
从本地推送到bitbucket repo
一旦您从此设置中毕业,请尝试puppet
或jenkins*
- puppet更适合站起来的服务器。