Настройка Django с поддержкой GeoDjango в AWS Beanstalk или EC2 Instance

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

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 и получил ту же ошибку. Но потом я столкнулся с этим документом из Амазонки наблокировка AMI в исходной версии репозитория.

Поэтому добавление этого к параметрам пользователя через консоль EC2 при запуске устраняет проблему в EC2:

#cloud-config
repo_releasever: 2014.03

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

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

Ответы на вопрос(5)

Ваш ответ на вопрос