如何在启动/重新启动时将最新版本的应用程序签出到新的EC2实例

首先让我说这是一个初学者types的问题。 我不是一个系统pipe理员,更是一个开发人员。 好歹…

我在Amazon EC2服务上为我的Web应用程序启动服务器实例时创build了一个自定义的专用AMI。 AMI不包含应用程序本身,只是它需要运行的环境(Java,Tomcat,Subversion)。 我很好奇的是如何使用某种shell或者甚至是一个ant脚本来检查或者更新来自指定SCM库的应用程序源代码。

我真的不明白为什么这是不可能的,但我不完全确定这是一个“好”的方法。 换句话说,你认为最好的方法是什么?

我认为如果Java是相关的,Maven是做这种事情的最佳方式。 但是,如果你不使用它,这是一个具有学习曲线的新技术。 另外它需要一个Nexus存储库

如果你不想这样做,你应该做以下的事情:

  • 把你的启动脚本放在S3上
  • 把你的应用程序放在S3上
  • 启动AMI时,可以修复启动信息(可以为其提供自定义启动脚本的部分)。 它从S3中提取启动脚本并运行它。 您的启动脚本将提取您的应用程序并进行安装。

您可以使用:蒂姆凯的AWS脚本(谷歌它)轻松地从S3中抽取东西,您可以通过机器启动传递密钥。

我设置了类似的东西,这就是我做的(没有maven)

一种可能的方法是在你的AMI中包含一个初始化脚本,检查你的代码库中的代码。

请参阅http://www.debuntu.org/how-to-manage-services-with-update-rc.d如何在debian / ubuntu发行版上执行此操作。