Настройка 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?
Любое понимание этого приветствуется, спасибо.