2011-06-20 202 views
2

Hopfully这个问题还没有问过,但我已经搜查,没有发现任何SLONG线,因为这...EC2共享WWW文件夹

首先,我的问题:我在后面跟着跑2 EC2 Linux实例一个弹性负载Balencer。它的工作很好!非常满意。

我的问题开始于在服务器上放置/更新应用程序代码。此刻,我是litrally,修改我的本地机器上的代码。将其上传到我的个人主机,然后Wget到每个ec2实例并解压缩。

有没有更简单的方法来做到这一点?我能够创建一种跨越两个实例的共享文件夹吗?

简而言之:在2台服务器上更新我的WWW根目录的简单方法是什么?

很多谢谢,

汤姆。

回答

0

使用工具(如Puppet)来维护您的服务器配置。

+0

Im稍有困惑仍然..维持我的服务器配置的解决方案只会提供一种设置WWW根的方法吗? (所以我可以设置它,但我在哪里设置它?“ 我是否创建某种类型的EBS并在两台服务器之间共享? 似乎无法在此找到任何帖子..大公司如何跨所有Web服务器复制应用程序代码? 汤姆。 – tornup

+0

他们把他们的数据和配置放在Puppet master上,让Puppet处理它。 –

4

的解决这个问题是使用continuous integration可与rsync传送文件和建立在服务器上该项目的一个方式,这是不是现在。

有相当一堆可用的插件(PHPUnit的,代码覆盖率,代码分析等):

Jenkins

如何:

  1. Install Jenkins
  2. 配置项目(可能你的代码应该在某些代码版本系统中)与Jenkins
    1. 配置服务器,项目路径,作业前,作业等
  3. 安排工作/作业。
  4. 就是这样,完成了。

参考:

  1. 配置:
    1. configuring - ex.1
    2. Initial configuration
      1. Configuring the jobs
  2. http://agile.dzone.com/news/continuous-integration-php

2.你需要一个代码版本控制,它可以帮助你保持一个稳定的代码&让他们在各种环境中同样提供。

主要有两大版本系统中可用一个是Git & Subversion

可以做些什么(您的具体情况):

  1. 创建一个存储库
  2. 在仓库里创建一个项目
  3. 将所有代码转储到此项目中svn add <files> & svn commit .
  4. 登录到您的EC2机器。
  5. 运行svn checkout <repository-url-to-project>它将获取机器上的代码。

,如果你有更新/更改任何文件,则:

  1. 你可能会犯(添加)一些资料库修改。
  2. 在机器中运行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/

0
@tornup 

这是一个比较可行的解决方案。如果你不熟悉JenkinsPuppet你可以这样做以下:

bitbucket.com并启动库

创建一个存储库有

推动当地的源代码,该仓库与sourcetree

来自您的机器,做一个git pull(跟随到位桶指令)

后,修改本地代码,请多次提交,以测试它

然后到你的服务器和问题混帐拉都

........................................ bitbucket.repo/your main source 
...........local...server1.server2 share the same source as bitbucket repo 

从本地推到位桶回购

一旦你从这个设置毕业,尝试puppetjenkins* - 傀儡更多是站在服务器。