Автоматическая настройка Apache Solr с помощью Django-Oscar на AWS Elastic Beanstalk

мне нужно убедиться, что Apache Solr устанавливается с моим приложением django-oscar и использует эти - инструкции С an .файл конфигурации ebextensions для автоматической установки Solr и восстановления индекса.

здесь .ebextensions / 03_solr.config

container_commands:
  01_install_solr:
    command: "wget http://archive.apache.org/dist/lucene/solr/4.7.2/solr-4.7.2.tgz &&
    tar xzf solr-4.7.2.tgz &&
    cd solr-4.7.2.example/solr/collection1 && 
    mv conf conf.original && 
    ln -s /opt/python/current/app/deploy/solr conf &&
    cd ../.. && 
    java -jar start.jar"
  02_rebuild_index:
    command: "python manage.py rebuild_index --noinput"

что мне нужно добавить / обновить здесь, чтобы получить solr для автоматической установки на

eb deploy

?

Update: изменен bash на a одна команда. Похоже, процесс завершается, но при выполнении запуска java-jar.фляги .ebextensions/03_solr.config задач выполняет

org.eclipse.jetty.server.AbstractConnector - Started SocketConnector@0.0.0.0:8983

этот процесс действительно должен быть фоновым процессом, поскольку в настоящее время он вызывает зависание развертывания и тайм-аут без развертывания нового приложения. Согласно это так пост, для запуска отложенного задания после развертывания новой версии приложения требуется некоторая работа. Есть предложения? Чтобы уточнить:

выполнить

java -jar start.jar

2 ответов


таким образом, ответ оказался необходимостью использовать крючки развертывания post,как описано. Завершение и перезапуск экземпляра EB EC2 и новое развертывание решили проблему.

container_commands:
  01_install_solr:
    command: "cd /opt/python/current/app &&
    wget http://archive.apache.org/dist/lucene/solr/4.7.2/solr-4.7.2.tgz &&
    tar xzf solr-4.7.2.tgz &&
    cd solr-4.7.2/example/solr/collection1/ &&
    cp -r conf conf.original &&
    ln -s /opt/python/current/app/deploy/solr conf"
    leader_only: true
  02_rebuild_index:
    command: "python manage.py rebuild_index --noinput"
    leader_only: true
commands:
  create_post_dir:
    command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post"
    ignoreErrors: false

  files:
    "/opt/elasticbeanstalk/hooks/appdeploy/post/start_solr.sh":
      mode: "000755"
      owner: root
      group: root
      content: |
        #!/usr/bin/env bash
        nohup java -jar /opt/python/current/app/solr-4.7.2/example/start.jar queue:work --daemon >/dev/null 2>&1 &

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