【问题标题】:Why should I ignore .elastbeanstalk folder?为什么我应该忽略 .elastic beanstalk 文件夹?
【发布时间】:2018-06-04 13:19:48
【问题描述】:

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

所以我已经制作了构建脚本,在其中生成了一个部署到 EB 中的 deploy.zip 文件。它确实按预期工作。

因此,在构建用于构建与 EB 兼容的工件(我的 deploy.zip)的脚本之后,我开始着手配置 EB cli 以在我的 gitlab-ci 中使用 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 时,它失败了,就像它想象的那样。

到目前为止,一切都按照我的计划运行,所以我在将 .elasticbeanstalk 文件夹添加到 git 之前进行了 git status 的检查。令我惊讶的是,该文件夹未列出,.gitignore 文件已更改。检查.gitignore 时,它里面有.elasticbeanstalk

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

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

我尝试在没有配置的情况下运行 eb deploy,而只是在命令之前传递环境变量,例如 AWSAccessKeyId=<access_key> AWSSecretKey=<secret_key> eb deploy,但它说我应该在它之前运行 eb init

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

【问题讨论】:

    标签: deployment continuous-integration amazon amazon-elastic-beanstalk


    【解决方案1】:

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

    如果您只有一个环境,或者安全不是问题 - 那么在您的存储库中进行该配置是个好主意。您正在公开一些细节,例如 ssh 密钥名称,因此出于安全原因,并非所有人都应该看到它。所有人都公开回购。也许这就是为什么他们把它发给.gitignore

    请注意,通常您有 testpre-prodprod、环境 - 所以无论如何都需要配置。下一步是为所有 devopsish 内容创建一个单独的配置存储库,您可以在其中拥有目录或每个环境的分支。

    我同意你的观点,它看起来很奇怪 - .ebextensions 没有这种方式保护......

    如果我错过了什么 - 发布问题,我会在这个答案中附加说明。

    【讨论】:

      猜你喜欢
      • 2017-11-18
      • 1970-01-01
      • 2016-05-12
      • 2019-01-10
      • 2019-07-15
      • 2021-06-15
      • 2020-09-02
      • 2016-02-18
      • 2015-02-03
      相关资源
      最近更新 更多