由于EBExtension无法安装,导致Elastic Beanstalk应用程序部署失败

时间:2019-04-18 17:52:52

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

我们正在使用Elastic Beanstalk(Postgres,在64位Amazon Linux / 3.2.0上运行的Node.js),今天我醒来,收到了严重运行状况警告,导致所有请求均以502错误网关响应。自19年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.

我继承的存储库有点杂乱无章,我在三个不同的文件中发现了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的存储库信息   发布

我尝试过的事情:

  • 重新部署从19年4月9日成功完成的构建
  • 更改config.yml文件的外观

//显然我在这里rash撞

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。

有什么想法让事情恢复正常运行吗?

2 个答案:

答案 0 :(得分:0)

我能够恢复一切并运行。这是我想发生的事情。

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

答案 1 :(得分:0)

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

RUN amazon-linux-extras install postgresql9.6