AWS OpsWorks 部署
此页面记录使用 dpl v1 的部署,它目前是默认版本。下一个主要版本 dpl v2 将很快发布,我们建议您开始使用它。请参见 我们的博文了解详细信息。dpl v2 文档可以在此处找到。
在成功构建后,Travis CI 可以自动部署您的 AWS OpsWorks 应用程序。
对于最小配置,您只需要在您的 .travis.yml
中添加以下内容
deploy:
provider: opsworks
access-key-id: ACCESS-KEY-ID
secret-access-key: SECRET-ACCESS-KEY
app-id: APP-ID
region: REGION # (default: us-east-1)
region
不是必需的,但默认值为 us-east-1
。如果您的应用程序位于其他区域,您将收到类似于“OpsWorks 服务错误:无法找到 ID 为 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 的应用程序”的错误。
您可以在 此处 获取您的 AWS 访问密钥 ID 和您的 AWS 密钥。建议您加密您的 AWS 密钥。假设您已安装 travis
客户端,您可以这样做
travis encrypt SECRET-ACCESS-KEY --add deploy.secret-access-key
您还可以使用 travis
工具为您设置好一切
travis setup opsworks
请记住,上述命令必须在您的项目目录中运行,以便它可以修改您的 .travis.yml
。请注意,region
不是通过运行 travis setup opsworks
生成的。
迁移数据库 #
如果您想将您的 Rails 数据库从 Travis 迁移到 AWS OpsWorks,请将 migrate
选项添加到您的 .travis.yml
中。
deploy:
provider: opsworks
access-key-id: ACCESS-KEY-ID
secret-access-key: SECRET-ACCESS-KEY
app-id: APP-ID
migrate: true
要部署的分支 #
默认情况下,Travis CI 只会从您的 **主** 分支部署。
您可以使用 **on** 选项明确指定要部署的分支
deploy:
provider: opsworks
access-key-id: ACCESS-KEY-ID
secret-access-key: SECRET-ACCESS-KEY
app-id: APP-ID
on: production
或者,您也可以将其配置为从所有分支部署
deploy:
provider: opsworks
access-key-id: ACCESS-KEY-ID
secret-access-key: SECRET-ACCESS-KEY
app-id: APP-ID
on:
all_branches: true
从拉取请求触发的构建永远不会触发部署。
部署构建工件 #
在您的测试运行并在部署阶段之前,Travis CI 将清理您所做的任何其他文件和更改。
也许这不是您想要的,因为您可能会生成一些也应该部署的工件(例如资产编译)。现在有一个选项可以跳过清理
deploy:
provider: opsworks
access-key-id: ACCESS-KEY-ID
secret-access-key: SECRET-ACCESS-KEY
app-id: APP-ID
skip_cleanup: true
等待部署 #
默认情况下,构建将在触发 OpsWorks 部署后立即继续。要等待部署完成,请使用 **wait-until-deployed** 选项
deploy:
provider: opsworks
access-key-id: ACCESS-KEY-ID
secret-access-key: SECRET-ACCESS-KEY
app-id: APP-ID
wait-until-deployed: true
Travis CI 将等待最多 10 分钟以完成部署,并记录其是否成功。
在成功部署后更新应用程序设置 #
默认情况下,来自 Travis CI 的部署将在 OpsWorks 上触发部署,但不会触及任何其他配置。要更新应用程序设置中的修订版,请使用 **update-app-on-success** 选项。此外,您必须设置 **wait-until-deployed** 选项
deploy:
provider: opsworks
access-key-id: ACCESS-KEY-ID
secret-access-key: SECRET-ACCESS-KEY
app-id: APP-ID
wait-until-deployed: true
update-app-on-success: true
Travis CI 将等待直到部署返回成功,然后才会更新应用程序设置中的修订版。
条件发布 #
您只有在满足某些条件时才能部署。请参阅 使用 on:
的条件发布。
在部署之前和之后运行命令 #
有时您希望在部署之前或之后运行命令。您可以使用 before_deploy
和 after_deploy
阶段来完成此操作。只有在 Travis CI 实际部署时才会触发这些阶段。
before_deploy: "echo 'ready?'"
deploy:
..
after_deploy:
- ./after_deploy_1.sh
- ./after_deploy_2.sh