【问题标题】:Elastic Beanstalk application deployment fails from EBExtension failing to installElastic Beanstalk 应用程序部署因 EBExtension 安装失败而失败
【发布时间】:2019-09-09 02:33:56
【问题描述】:

我们使用的是 Elastic Beanstalk(Postgres,Node.js 在 64 位 Amazon Linux/3.2.0 上运行),我今天醒来时收到严重健康警告,导致所有请求都以 502 Bad Gateway 响应。自 2019 年 4 月 9 日以来我没有手动部署,所以不知道为什么会突然发生这种情况。

我们得到的原始错误是:

Application deployment failed at 2019-04-18T15:39:51Z with exit status 1 and error: Package listed in EBExtension failed to install.

Yum does not have postgresql96-devel available for installation.

我继承的repo有点乱,我在三个不同的文件中找到了postgres96-devel的实例:

  • .ebextensions/config.yml
  • .ebextensions/proxy.config
  • proxy.config

我的 config.yml 文件如下所示:

packages:
  rpm:
    postgresql: https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-ami201503-96-9.6-2.noarch.rpm
  yum:
    postgresql96-devel: []
    perl-CPAN: [] 

我注意到 rpm 链接返回 404,在寻找更好的 url 时,我在 Postgres RPM page 上看到了这个警告:

截至 2019 年 4 月 15 日,每个发行版只有一个存储库 RPM,并且 它包括所有可用 PostgreSQL 的存储库信息 发布

我尝试过的:

  • 重新部署 2019 年 4 月 9 日最后成功的构建
  • 将 config.yml 文件更改为如下所示

// 很明显我在这里打嗝

packages:
  rpm:
    postgresql: https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-6-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  yum:
    postgresql11-devel: []
    perl-CPAN: []

通过所有这些试验 + 重新部署,我仍然看到如下错误:

应用程序部署在 2019-04-18T17:40:41Z 失败,退出状态为 1 并出现错误:EBExtension 中列出的包安装失败。

Yum 没有可供安装的 postgresql96-devel。 应用程序版本不正确“app-v1_4_1-190418_084747”(部署 98)。预期版本“app-v1_4_1-190409_140626”(部署 104)。 进程默认状态不正常 42 分钟 (Target.FailedHealthChecks)。

我不确定为什么它抱怨 postgres96-devel,因为我将配置文件更改为指向 postgres11-devel。

任何想法如何让事情恢复正常运行?

【问题讨论】:

    标签: postgresql amazon-web-services amazon-elastic-beanstalk


    【解决方案1】:

    我能够让一切恢复正常运行。这就是我认为发生的事情。

    • 我们的 prod 实例运行的是 Linux 3.2。这不包含正确的 rpm 包,因此它依赖于 config.yml 中的 rpm 链接。
    • 该 URL 在 2019 年 4 月 15 日中断,因此当 EB 部署并拉取该 RPM 时,它失败了,导致整个部署失败。
    • 解决方法是简单地将 yum 包从 postresql96-devel 降级到 postgres95-devel。 Linux 3.2 的 yum 目录包含 postgres95-devel,因此部署能够跳过到 Internet 下载 rpm(此时已损坏)。

    【讨论】:

      【解决方案2】:

      您可以使用amazon-linux-extra 工具安装 PostgreSQL 9.6: (如果使用 docker,在 Dockerfile 中:)

      RUN amazon-linux-extras install postgresql9.6
      

      【讨论】:

        猜你喜欢
        • 2017-01-24
        • 2012-12-26
        • 2015-12-15
        • 2015-12-17
        • 2017-01-29
        • 2021-10-29
        • 2016-05-16
        • 1970-01-01
        • 2014-11-15
        相关资源
        最近更新 更多