结合travis和ec2

Combining travis and ec2

我有一个 github 项目使用 travis 进行持续集成。我想在 amazon ec2 上部署我的项目。为了简化部署,我希望部署的系统与测试系统具有相同的配置。这可能吗?

AFAICT,这需要两件事:首先,一个与 travis 使用的设置相匹配的 ec2 预配置实例。一个存在吗?其次,一种从命令行执行 travis.yml 脚本的方法。我该怎么做?

至于从命令行执行 .travis.yml 脚本,如果我是你,我会采用相反的方式,将你的 .travis.yml 脚本替换为如下内容:

language: bleh

etc etc...

install:
  - ./travis-scripts/install.sh

before_script:
  - ./travis-scripts/before_script.sh

script:
  - ./travis-scripts/script.sh

当然,您仍然需要编写脚本来在您的 Amazon EC2 实例上安装您需要的任何语言版本、Travis 插件等。

至于匹配 Travis VM 的 Amazon EC2 实例,我不知道,因为我对 Amazon AWS 不太熟悉,但我可以告诉你,Travis VM 是基于 Ubuntu 12.04,关于 The Build Environment.

的页面中有很多更具体的信息

所以您想要 EC2 实例上的某些东西可以读取您的 .travis.yml 文件并以与 travis 测试时相同的方式配置它?

我认为对于像这样一个相对简单的问题来说,这是一个相当遥远的尝试。 Travis 是一个集成和测试平台,它使用许多其他系统(如 chef 和 docker)来处理 .yml 文件。将此系统用于 运行 单个应用程序听起来有点矫枉过正。

我建议使用 chef(或 puppet 之类的类似工具)来配置您的生产环境并部署您的应用程序。

您可以有一个厨师食谱来配置生产环境(数据库、配置文件、安装内容等),另一个用于部署、配置和启动您的应用程序。当您想要对生产环境进行更改时,您对这些文件进行更改。它们可以很容易地与项目捆绑在一起。