Сбой развертывания приложения Elastic Beanstalk из-за невозможности установки EBExtension - PullRequest
0 голосов
/ 18 апреля 2019

Мы используем Elastic Beanstalk (Postgres, Node.js, работающий на 64-битной Amazon Linux / 3.2.0), и сегодня я проснулся с предупреждением о серьезном здоровье, в результате которого все запросы отвечали с ошибкой 502 Bad Gateway.Я не развертывал вручную с 9.09.19, поэтому не уверен, почему это произошло внезапно.

Первоначальная ошибка, которую мы получили, была:

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 я увидел этопредупреждение на странице RPM Postgres :

По состоянию на 15 апреля 2019 года для каждого дистрибутива существует только один RPM-репозиторий, и он включает информацию о репозитории для всех доступных выпусков PostgreSQL

Что я пробовал:

  • Повторное развертывание последней успешной сборки из 4/9/19
  • Изменение файла 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.

Есть какие-нибудь идеи, как вернуть все в рабочее состояние?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

Вы можете установить PostgreSQL 9.6 с помощью инструмента amazon-linux-extra: (если используется Docker, в Dockerfile:)

RUN amazon-linux-extras install postgresql9.6
0 голосов
/ 19 апреля 2019

Я смог вернуть все в рабочее состояние. Вот что я думаю произошло.

  • Наши экземпляры prod работали под управлением Linux 3.2. Он не содержал правильный пакет rpm, поэтому он полагался на ссылку rpm из config.yml.
  • Этот URL прервался с 15.04.199, поэтому, когда EB начал развертывание и извлекал этот RPM, он потерпел неудачу, что привело к сбою всего развертывания.
  • Исправлено было просто понизить пакет yum с postresql96-devel до postgres95-devel. Каталог yum в Linux 3.2 содержал postgres95-devel, поэтому при развертывании можно было пропустить выход в Интернет, чтобы загрузить rpm (который на данный момент не работает).
...