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

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

首先请允许我说这是一个初学者类型的问题。我不是一个系统管理员,而是一个开发人员。无论如何...

我创建了一个自定义的私有 AMI,用于在 Amazon 的 EC2 服务上启动我的 Web 应用程序的服务器实例。AMI 不包含应用程序本身,而只是包含它需要运行的环境(Java、Tomcat、Subversion)。我好奇的是如何使用某种 shell 甚至 ant 脚本从指定的 SCM 存储库签出或更新应用程序源。

我真的不明白为什么这不可能,但我不确定有没有“好”的解决方法。换句话说,您认为最好的方法是什么?

答案1

如果与 Java 相关,我认为 Maven 是完成此类任务的最佳方式。但是,如果您不使用它,它是一种需要学习的新技术。此外,它需要一个 Nexus 存储库。

如果您不想这样做,您应该执行以下操作:

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

您可以使用:Tim Kay 的 AWS 脚本(谷歌搜索)轻松地从 S3 中提取内容,您可以通过机器启动传递密钥。

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

答案2

一种可能的方法是将一个初始化脚本包含到您的 AMI 中,以从您的 repo 中检出代码。

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

相关内容