2014-11-27 6 views
2

Так что я в какой-то момент имел это через Beanstalk, используя Amazon Instance (2013.09) ami-35792c5c. В то время это ebextension скрипты работали здорово, когда помещен в корень вашего репо в .ebextensions/Настройка Django с поддержкой GeoDjango в AWS Beanstalk или EC2 Экземпляр

00_repo.config

packages: 
    rpm: 
     pgdg-redhat93-9.3-1: 'http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm' 
     remi: 'http://rpms.famillecollet.com/enterprise/remi-release-6.rpm' 

files: 
    "/etc/yum.repos.d/pgdg-93-redhat.repo": 
     mode: "000644" 
     owner: root 
     group: root 
     content: | 
      [pgdg93] 
      name=PostgreSQL 9.3 $releasever - $basearch 
      baseurl=http://yum.postgresql.org/9.3/redhat/rhel-6-$basearch 
      enabled=1 
      gpgcheck=1 
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-93 

      [pgdg93-source] 
      name=PostgreSQL 9.3 $releasever - $basearch - Source 
      failovermethod=priority 
      baseurl=http://yum.postgresql.org/srpms/9.3/redhat/rhel-6-$basearch 
      enabled=0 
      gpgcheck=1 
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-93 


commands: 
    epel_repo: 
     command: yum-config-manager -y --enable epel 

    remi_repo: 
     command: yum-config-manager -y --enable remi 

01_app.config

packages: 
    yum: 
     libtiff-devel: '' 
     libjpeg-devel: '' 
     libzip-devel: '' 
     freetype-devel: '' 
     postgresql-devel: '' 
     gdal: '' 
     gdal-python: '' 
     geos: '' 
     proj: '' 
     libmemcached: '' 
     libmemcached-devel: '' 
     cyrus-sasl-devel: '' 
     zlib-devel: '' 

container_commands: 
    01_collectstatic: 
     command: 'PYTHONPATH=.:..:../lib cd site/kpmkhv && ./manage.py collectstatic -c --noinput && cd ../..' 
     leader_only: true 
    02_syncdb: 
     command: 'PYTHONPATH=.:..:../lib cd site/kpmkhv && ./manage.py syncdb --noinput && cd ../..' 
     leader_only: true 
    03_migrate: 
     command: 'PYTHONPATH=.:..:../lib cd site/kpmkhv && ./manage.py migrate --noinput && cd ../..' 
     leader_only: true 

option_settings: 
    - namespace: aws:elasticbeanstalk:container:python 
     option_name: WSGIPath 
     value: site/kpmkhv/wsgi.py 
    - namespace: aws:elasticbeanstalk:container:python:staticfiles 
     option_name: /static/ 
     value: site/kpmkhv/static/ 
    - option_name: DJANGO_SETTINGS_MODULE 
     value: settings_prod 

Так что теперь, когда я использую тот же экземпляр и запуск моей среды, я получаю эту ошибку относительно зависимости.

Error: Package: gdal-libs-1.9.2-5.rhel6.x86_64 (pgdg93) 
      Requires: libpoppler.so.5()(64bit) 
    You could try using --skip-broken to work around the problem 
    You could try running: rpm -Va --nofiles --nodigest 

Похоже, тот же репо теперь возвращает новую версию Poppler, это было 12.x и теперь его 22.x и GDAL нуждается в старой версии.

Я также проверил это на экземпляре EC2 и получил ту же ошибку. Но затем я столкнулся с этим документом с amazon на locking an AMI to its original repository version.

Так добавив в опциях пользователя через EC2 консоли при запуске исправляет проблему на EC2:

#cloud-config 
repo_releasever: 2014.03 

Что это лучший способ, чтобы всегда иметь эту опцию, если ваш Beanstalk запускает EC2 Instance от вашего имени ? Я прочитал о cloud-init и, возможно, лучший сценарий, развернутый через ebextensions?

Любое понимание этого оценивается, спасибо.

+0

Я думал, добавив releasever = 2013,09 в yum.conf и работает yum clean все это сделало бы трюк. Кажется, что работает над Ec2 @ ssh, но не через файлы в ebextensions. – radtek

+0

. Следующее, что я попробую, это пользовательский ami. – radtek

+0

Пользовательский AMI со всеми подходящими пакетами по какой-то причине переходит в Red status right now, больше вопросов, связанных с yum. – radtek

ответ

2

Итак, у меня теперь есть рабочий рабочий процесс ebextensions на стеке 2013.09 ami ami-35792c5c. Для стека 2014.09 см. Другое решение. Решение ниже работает с PostGIS, установив необходимый компонент библиотеки GDAL, 00_repo.config должна выглядеть следующим образом:

files: 
    "/etc/yum.repos.d/pgdg-93-redhat.repo": 
    mode: "000644" 
    owner: root 
    group: root 
    content: | 
     [pgdg93] 
     name=PostgreSQL 9.3 $releasever - $basearch 
     baseurl=http://yum.postgresql.org/9.3/redhat/rhel-6-$basearch 
     enabled=1 
     gpgcheck=1 
     gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-93 

     [pgdg93-source] 
     name=PostgreSQL 9.3 $releasever - $basearch - Source 
     failovermethod=priority 
     baseurl=http://yum.postgresql.org/srpms/9.3/redhat/rhel-6-$basearch 
     enabled=0 
     gpgcheck=1 
     gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-93 

commands: 
    epel_repo: 
    command: yum-config-manager -y --enable epel 
    remi_repo: 
    command: yum-config-manager -y --enable remi 

packages: 
    rpm: 
    pgdg-redhat93-9.3-1: 'http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm' 
    remi: 'http://rpms.famillecollet.com/enterprise/remi-release-6.rpm' 
    qt4-devel: 'http://mirror.centos.org/centos/6/os/x86_64/Packages/qt-4.6.2-28.el6_5.x86_64.rpm' 

второе расширение остается в такте. Это работает на Amazon Instance (2013.09) ami-35792c5c, я еще не пробовал новые контейнеры с ним.

Альтернатива 1:

Если вы хотите меньше зависимостей по РЕПО/RPMS из файла ebextensions, вы можете загрузить все необходимые RPMs в S3 и обновить ebextensions «пакеты», чтобы указать на ваши s3 оборотов в минуту. Настройте свой ведро S3 для доступа общественности, используя заголовки CORS.

Альтернатива 2:

Создание пользовательского AMI, где вы компилировать все зависимости от источника. Таким образом, конфликтов rpm не будет, и вам не придется выставлять репозитории по умолчанию, предоставленные AMI, которые вы настраиваете. Смотрите этот ответ: Configuring Amazon Elastic Beanstalk with PostGIS

Также проверьте инструмент, который я сделал:

https://github.com/radlws/django-awseb-tasks

2

У меня была аналогичная проблема на 2014.09 стек, Ами идентификатор AMI-246ed34c и получил вокруг проблемы, как это:

  1. я нашел и скачал необходимые зависимости онлайн here и here. Эти версии, которые работают:

  2. Сжатые оба .rpm файлы

  3. Выложены .zip файлы в S3 и убедитесь, что сервер может получить доступ к ним.
  4. Добавлена ​​ebextensions/00_sources.config следующий код: /etc/mylibs/jpeg8/ : https://s3.amazonaws.com/path-to-first-rpm-file.rpm.zip /etc/mylibs/poppler/ : https://s3.amazonaws.com/path-to-second-rpm-file.rpm.zip
  5. установлен с помощью Yum в ebextensions/01_packages.config. Я должен был использовать эти команды, чтобы их можно было установить.

    commands: 
        jpeg8_repo: 
        command: yum -y install /etc/mylibs/jpeg8/lib64jpeg8-8b-5.1.mga1.x86_64.rpm 
        ignoreErrors: true 
        poppler_repo: 
        command: yum -y install /etc/mylibs/poppler/lib64poppler5-0.12.4-2.1mdv2010.1.x86_64.rpm 
        ignoreErrors: true 
    
+0

Прохладный спасибо за вход. Я также попытался использовать этот метод, но столкнулся с ebextensions, не имея возможности установить мои rpms, хотя ssh'ing в экземпляр и делать это вручную, используя yum. Я попробую закрепить его, как вы. Кстати, вы используете стек 2014.09? Также каков исходный источник/версия используемых вами rpms? У вас есть общедоступные ссылки на rpms? – radtek

+0

Да, я использую изображение 2014.09. И причина, по которой вам приходится сначала архивировать файлы, заключается в том, что шаг «sources» позволяет только сжатые файлы. Ссылки на исходные ресурсы rpm должны быть видны на шаге 1 выше. – emillamm

+0

Хорошо, я использовал их в пакетах: rpms: шаг, как вы видите ниже. Для ресурсов rpm на первом этапе, какую именно версию вы использовали? Поиск возвращает много для каждого. Было ли это верхним совпадением для каждого i.e lib64jpeg8-8b-5.1.mga1.x86_64.rpm, lib64poppler5-0.12.4-2.1mdv2010.1.x86_64.rpm? – radtek

0

Для 2015.03 изображений, я имел счастье с помощью этого значения для pgdg репо:

pgdg-redhat93-9.3-1: 'http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-ami201503-93-9.3-1.noarch.rpm' 

с тем, что я был в состоянии установить GDAL без необходимости приносить в libpoppler, и т. д., как отдельные rpms из S3.

+0

Спасибо за подсказку, я скоро перейду к этому изображению. – radtek

+0

Использование http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-ami201503-94-9.4-1.noarch.rpm У меня все еще такая же проблема с libpoppler.so.5 –

+0

Привет ребята, не возражаете поделиться файлом conf, работающим с 2015.03 –

2

я, наконец, смог получить эту работу на 2015.03 изображений и PostgreSQL 9.4 с предложением я нашел в списке ня рассылки PostgreSQL (http://www.postgresql.org/message-id/[email protected])

В частности, я установил libpoppler прямо из зеркала CentOS 6. Я также использовал предложение Майка Эдуарда о специфических параметрах pgdg для Amazon Linux. В целом, это закончилось тем, что было довольно простое решение, которое выглядело как:

yum -y install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-ami201503-94-9.4-1.noarch.rpm 
yum --enablerepo=epel -y install postgis2_94 http://centos-distro.cavecreek.net/centos/6.6/os/x86_64/Packages/poppler-0.12.4-3.el6_0.1.x86_64.rpm 
+0

Вы попробовали решение Майка Эдвардса? – radtek

+1

я сделал. Первая команда отражает его решение. Однако единственная разница между двумя файлами repo pgdg заключается в том, что Amazon Linux определяет $ releasever как 6. У меня все еще была проблема с libpoppler, как я заметил в своем комментарии к его решению, поэтому мне пришлось искать альтернативного пакет для этого. –

+0

А также, как смешное совпадение, этот поток списка рассылки, с которым я связан, - это то, где они впервые обсудили создание RPO репо специально для Amazon Linux. –

2

Мое решение на 2017.03 изображение было:

commands: 
    01_yum_update: 
    command: sudo yum -y update 
    02_epel_repo: 
    command: sudo yum-config-manager -y --enable epel 
    03_install_gdal_packages: 
    command: sudo yum -y install gdal gdal-devel 

files: 
    "/etc/httpd/conf.d/wsgihacks.conf": 
    mode: "000644" 
    owner: root 
    group: root 
    content: | 
     WSGIPassAuthorization On 

packages: 
    yum: 
    git: [] 
    postgresql95-devel: [] 
    gettext: [] 
    libjpeg-turbo-devel: [] 
    libffi-devel: [] 
+1

Спасибо @ psychok7, это сработало как шарм. Но я пропустил директиву 'files:'. Я не думаю, что это необходимо для запуска geodjango. – yellowcap

 Смежные вопросы

  • Нет связанных вопросов^_^