AWS OpsWorks 部署

此页面记录了使用下一个主要版本 dpl v2 的部署,该版本目前处于 beta 发布阶段。有关详细信息,请参见 我们的博客文章。当前的默认版本是 dpl v1。请查看 dpl v1 文档.

请务必阅读 v2 部署概述.

Travis CI 可以在构建成功后自动部署您的 AWS OpsWorks 应用程序。

对于最小配置,请将以下内容添加到您的 .travis.yml

deploy:
  provider: opsworks
  access_key_id: <encrypted access_key_id>
  secret_access_key: <encrypted secret_access_key>
  app_id: <app_id>
  edge: true # opt in to dpl v2

您可以从 这里 获取您的 AWS 访问密钥 ID 和 AWS 秘密访问密钥。

region 默认设置为 us-east-1。如果您的应用程序位于其他区域,您将看到错误 无法找到应用程序

状态 #

对 AWS OpsWorks 部署的支持是 *稳定的**。

已知选项 #

使用以下选项来进一步配置部署。

access_key_id AWS 访问密钥 ID — **必需**,**机密**,类型:字符串
secret_access_key AWS 秘密密钥 — **必需**,**机密**,类型:字符串
app_id 应用程序 ID — **必需**,类型:字符串
region AWS 区域 — 类型:字符串,默认值:us-east-1
instance_ids 实例 ID — 类型:字符串或字符串数组
layer_ids 层 ID — 类型:字符串或字符串数组
migrate 迁移数据库。— 类型:布尔值
wait_until_deployed 等待应用程序部署并返回部署状态。— 类型:布尔值
update_on_success 当 wait-until-deployed 和 updated-on-success 都不提供时,应用程序源代码将更新为当前 SHA。当 wait-until-deployed 未提供时,将被忽略。— 类型:布尔值,别名:update_app_on_success
custom_json 自定义 JSON 选项覆盖(覆盖默认配置)— 类型:字符串

共享选项 #

cleanup 在部署之前清理 Git 工作目录中的构建工件 — 类型:布尔值
run 部署成功完成后的执行命令 — 类型:字符串或字符串数组

环境变量 #

如果所有选项以 AWS_OPSWORKS_ 为前缀,则可以作为环境变量提供。

例如,access_key_id 可以提供为

  • AWS_ACCESS_KEY_ID=<access_key_id>
  • OPSWORKS_ACCESS_KEY_ID=<access_key_id>

保护机密 #

秘密选项值应作为构建配置(.travis.yml 文件)中的加密字符串或存储库设置中的环境变量提供。

可以在存储库设置页面或使用 travis env set 设置环境变量。

travis env set AWS_ACCESS_KEY_ID <access_key_id>

为了在将选项值添加到您的 .travis.yml 文件时对其进行加密,请使用 travis encrypt

travis encrypt <access_key_id>

或者使用 --add 将其直接添加到您的 .travis.yml 文件中。请注意,此命令必须在您的存储库的根目录中运行。

travis encrypt --add deploy.access_key_id <access_key_id>

迁移数据库 #

如果您想在 travis 中将 rails 数据库迁移到 AWS OpsWorks,请添加 migrate 选项

deploy:
  provider: opsworks
  # ⋮
  migrate: true

等待部署 #

默认情况下,构建将在触发 OpsWorks 部署后立即继续。要等待部署完成,请使用 wait_until_deployed 选项

deploy:
  provider: opsworks
  # ⋮
  wait_until_deployed: true

Travis CI 将等待最多 10 分钟,直到部署完成,并记录是否成功。

在部署成功后更新应用程序设置 #

默认情况下,Travis CI 中的部署会触发 OpsWorks 上的部署,但不会触及任何其他配置。要更新应用程序设置中的修订版,请使用 update_app_on_success 选项。此外,您还必须设置 wait_until_deployed 选项

deploy:
  provider: opsworks
  # ⋮
  wait-until-deployed: true
  update-app-on-success: true

Travis CI 将等待直到部署返回成功,然后才会更新应用程序设置中的修订版。

拉取请求 #

请注意,拉取请求构建会完全跳过部署步骤。

另请参阅 #