Elastic Beanstalk: конфигурация .ebextensions выполнена и удалена

Я настраиваю CodePipeline с помощью Elastic Beanstalk. Elastic Beanstalk должен развернуть файл войны в папке веб-приложений Tomcat. Но он развертывает файл войны в папке webapps / ROOT. Итак, я создал ниже сценарий server-update.config в папке .ebextensions, чтобы скопировать файл войны в папку webapps из webapps / ROOT /.

.ebextensions / server-update.config

container_commands:
  copy_file:
    command: sudo cp /var/lib/tomcat8/webapps/ROOT/test/* /var/lib/tomcat8/webapps/
    leader_only: true

Вышеупомянутый код выполнен успешно. Ниже журнал.

[2016-04-18T14:06:30.939Z] INFO  [1128]  - [Application update code-pipeline-1460988338596-MyAppBuild-2d3bd0c0-62bc-4927-bd09-b04ba81e7c03@15/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_SampleEB/Command copy_file] : Starting activity...
[2016-04-18T14:06:30.973Z] INFO  [1128]  - [Application update code-pipeline-1460988338596-MyAppBuild-2d3bd0c0-62bc-4927-bd09-b04ba81e7c03@15/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_SampleEB/Command copy_file] : Completed activity.

Но ElasticBeanstalk очищает папку веб-приложений tomcat после выполнения файла .ebextensions (при внутреннем запуске /opt/elasticbeanstalk/hooks/appdeploy/enact/02clean.sh)

  + EB_APP_DEPLOY_BASE_DIR=/var/lib/tomcat8/webapps
  + rm -rf /var/lib/tomcat8/webapps/ROOT /var/lib/tomcat8/webapps/sampleapp.war

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


person Prakash26790    schedule 18.04.2016    source источник


Ответы (2)


У нас была аналогичная проблема. Нам нужно было перезапустить Celery после правильной настройки Django. В конце концов, мы решили это очень просто вот так.

files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_restart_service.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
        #!/usr/bin/env bash
        service celeryd restart

Теперь это выполняется после того, как Elastic Beanstalk сотворил магию с контейнером.

person Gustaf    schedule 19.04.2016
comment
порядок важен: container_commands, packages, services, files - person Tony Chiboucas; 13.05.2016

Если вам нужен Elastic Beanstalk для выполнения чего-либо после развертывания, вы можете добавить его в AppDeployPostHook. Я подробно описал, как это сделать здесь, https://stackoverflow.com/a/36603033/3167238, который вы можете адаптироваться к вашим конкретным потребностям.

person hephalump    schedule 19.04.2016