EB 部署到多个环境
Posted
技术标签:
【中文标题】EB 部署到多个环境【英文标题】:EB Deploy to multiple environments 【发布时间】:2015-07-29 00:53:39 【问题描述】:我有相同的代码库(一个 git 存储库),我想上传到多个弹性 beanstalk 环境。有没有办法做到这一点,如果是这样,我应该如何设置我的存储库,以便我可以推送到多个环境?
环境是网站的不同语言版本,我想在不同的 beanstalks 中运行。语言由环境参数设置。
【问题讨论】:
【参考方案1】:回答我自己的问题。 AWS EB CLI 3+ 有一个很好的界面,可以部署到多个环境。如果您将另一个环境添加到您的应用程序,您可以简单地使用部署
eb deploy <environment-name>
【讨论】:
有没有办法用config.yml
文件做到这一点?
可以只执行一个命令部署到多个环境吗?例如eb deploy <environment-1> <environment-2>
@HueyLy 目前看来这是不可能的。但是你可以做eb deploy <env1> -v && eb deploy <env2> -v
等等.. ;)
我已向 EB 团队提出了一项建议以允许这样做:github.com/aws/elastic-beanstalk-roadmap/issues/165【参考方案2】:
您可以通过在.elasticbeanstalk/config.yml
文件中添加如下配置,使 eb cli 引用来自不同分支的不同环境:
branch-defaults:
main:
environment: staging
production:
environment: production
在此示例中,当您从“main”分支运行 eb deploy
时,它将部署到名为“staging”的环境中,而当您从“生产”分支运行它时,它将部署到名为“生产”。
这种方法要求每个环境都有一个专门的分支。要将一个分支推送到多个环境,可以使用@adnan's answer,并在使用eb deploy
命令时指定一个分支:
eb deploy <environment_name>
【讨论】:
【参考方案3】:如果您指定版本标签,您可以在其他 eb deploy
命令中使用该版本:
eb deploy my-first-env -l version-1 && eb deploy my-second-env --version version-1
【讨论】:
【参考方案4】:如果你使用 git 并且每个环境都有一个分支:
git checkout master
eb use <environment-name>
git checkout staging
eb use <environment-name>
git checkout worker
eb use <environment-name>
那你就可以了
eb deploy
这将部署到当前分支的定义环境。
在后台,这会在 /.elasticbeanstalk/config.yml
中设置关联
尽管如此,您仍然可以从任何分支eb deploy <environment-name>
。
【讨论】:
以上是关于EB 部署到多个环境的主要内容,如果未能解决你的问题,请参考以下文章