我为什么要忽略.elastbeanstalk文件夹?

时间:2017-12-21 20:16:12

标签: deployment continuous-integration amazon elastic-beanstalk

我有一个Elastic Beanstalk Python应用程序。

所以我已经创建了构建脚本,我生成了一个deploy.zip文件,我将其部署到EB中。它确实像它想象的那样工作。

因此,在构建了用于构建与EB兼容的工件(我的deploy.zip)的脚本之后,我开始在我的gitlab-ci中配置EB cli以使用eb deploy,因此它将部署到EB认证服务器,当进入开发分支时进行提交并进入EB生产时进入主服务器。 (现在我正在研究认证服务器)。

所以我确实阅读了文档并注意到eb会自己构建神器。但由于我已经拥有自己的构建脚本,因此部署了Artifact Instead of the Project Folder,因此我使用以下配置在其中创建了.elasticbeanstalk文件夹和config.yml

deploy:
     artifact: deploy.zip

所以我做了一个eb init,确实设置了所有内容(区域,ID,密钥并选择了我现有的项目。

当我做eb deploy时,它的工作正如它所设想的那样。所以我确实怀疑eb本身正在制作de artifactory,所以我检查了配置文件,注意eb已经在文件中添加了一堆其他配置,我的部署配置就在那里,所以对于另一项测试我删除了我的deploy.zip所以当我做eb deploy时,它就像它想象的那样失败了。

在此之前,所有内容都按照我的计划运行,因此在将git status文件夹添加到git之前,我进行了.elasticbeanstalk检查。令我惊讶的是,文件夹未列出且.gitignore文件已更改。检查.gitignore时,其中包含.elasticbeanstalk

所以它让我警惕是否应该将此文件夹添加到git中,因为eb的默认行为是将其添加到忽略中。

我计划提交eb配置并使用环境变量设置密钥,如Configuration Settings and Precedence会话中所述。

我尝试运行eb deploy而没有在命令之前传递env vars的配置,例如AWSAccessKeyId=<access_key> AWSSecretKey=<secret_key> eb deploy,但它说我应该在它之前运行eb init

我不应该git eb配置吗?如果不是,我应该如何进行使用EB的CI部署?

1 个答案:

答案 0 :(得分:3)

.elasticbeanstalk是eb cli存储其配置的地方。正如你所写的那样 - 有一个文件config.yml,所以你可以自己创建它。当您拨打eb init时,您的版本会被命令覆盖。

如果您只有一个环境,或者安全性不是问题 - 那么在您的存储库中拥有该配置是个好主意。您正在公开一些像ssh密钥名称的详细信息,因此出于安全考虑,并非所有人都应该看到它。我所有人都是公共回购。也许这就是为什么他们把它放到.gitignore

请注意,通常您拥有testpre-prodprod,环境 - 因此无论如何都需要进行配置。下一步是一个单独的配置存储库,用于所有那些不喜欢的东西,你可以在那里拥有目录或每个环境的分支。

我同意你的看法,看起来很奇怪 - .ebextensions并不是那么安全......

如果我遗漏了某些内容 - 发布问题,我会在此答案中附上澄清。