Как загрузить файл WAR в кулинарную книгу Tomcat 7 от Chef?

Я пытаюсь развернуть файл War на моем Tomcat 7, установленном кулинарной книгой на CHEF. Но ни на одном форуме не могу найти ответа на свой вопрос. Я понятия не имею, как это сделать! Я использую сервер Ubuntu 12.10. Я использую следующий рецепт: https://github.com/solarvm/tomcat7-cookbook.


person Willian Soares    schedule 13.01.2014    source источник
comment
Вы не нашли ответа на свой вопрос? На каком форуме искал?   -  person Grim    schedule 13.01.2014
comment
См.: stackoverflow.com/questions/19482781/   -  person Mark O'Connor    schedule 18.01.2014


Ответы (3)


Самый простой способ — использовать ресурс service для остановки Tomcat, использовать ресурс bash или файловый ресурс для копирования файла WAR, а затем использовать ресурс service для повторного запуска Tomcat.

Та кулинарная книга, которую вы пытаетесь использовать, не выполняет развертывание файла WAR. Но я нашел этот — https://github.com/poise/application_java — который может сделать работа.

И для чего бы это ни стоило, я думаю, вы могли бы найти и лучшую кулинарную книгу по установке Tomcat. Во-первых, на сайте в кулинарных книгах сообщества Opscode есть рецепт "tomcat", который может обрабатывать Томкэт 7.

(Совет: не просто используйте первую кулинарную книгу, которую вы найдете в Google. Выполните поиск в Github и попытайтесь оценить функциональность и качество кулинарных книг)

person Stephen C    schedule 13.01.2014
comment
Я пробовал это, но получил эту ошибку: Error executing action create` на ресурсе 'template[/usr/local/jenkins/shared/jenkins.xml]' Chef::Exceptions::FileNotFound Cookbook 'application_java' (3.0.1) не содержит файл в любом из следующих мест: templates/ubuntu-13.10/jenkins-context.xml.erb templates/ubuntu/jenkins-context.xml.erb templates/default/jenkins-context.xml.erb Эта кулинарная книга делает< /i> содержит: ['/opt/chef-repo/cookbooks/application_java/templates/default/context.xml.erb']` - person Willian Soares; 24.01.2014
comment
Похоже, вы указали атрибут context_template, не предоставив шаблон, который соответствует ... в соответствии с правилами сопоставления шаблонов Chef. Я не уверен, что эта функция поваренной книги реализована должным образом. - person Stephen C; 01.07.2014

Вы уже нашли папку $tomcat/webapps/?

Шаги, выполняющие ручное горячее развертывание и обновление. Чтобы избежать возможного конфликта, вам следует использовать временное имя файла mywebapp.war.zip. Трюк, который я использовал в Linux и Windows в течение многих лет.

  • скопируйте myapp.war в $tomcat/webapps/myapp.war.zip имя файла. Томкэт игнорирует это.
  • переименуйте myapp.war.zip в имя файла myapp.war. Tomcat находит новое веб-приложение.
  • подождите несколько секунд, вы должны найти папку $tomcat/webapps/myapp/extract, созданную tomcat. war был автоматически извлечен и теперь доступен.
  • перейдите по http://localhost:8080/myapp/ URL-адресу

Обновите существующее веб-приложение, используя трюк с перезаписью.

  • скопируйте myapp.war в $tomcat/webapps/myapp.war.zip имя файла
  • переименуйте myapp.war.zip в имя файла myapp.war, принудительно перезапишите существующее.
  • подождите несколько секунд, вы должны увидеть обновление временной метки папки $tomcat/webapps/myapp/
  • перейдите по http://localhost:8080/myapp/ URL-адресу

Или обновите существующее веб-приложение, используя трюк удаления-копирования.

  • скопируйте myapp.war в $tomcat/webapps/myapp.war.zip имя файла
  • удалить существующее имя файла myapp.war
  • подождите несколько секунд, вы должны увидеть удаление папки $tomcat/webapps/myapp/
  • переименуйте myapp.war.zip в имя файла myapp.war
  • подождите несколько секунд, вы должны найти папку $tomcat/webapps/myapp/extract, созданную tomcat. war был автоматически извлечен и теперь доступен.
  • перейдите по http://localhost:8080/myapp/ URL-адресу

Причина для временного имени файла war.zip заключается в том, чтобы убедиться, что файл полностью скопирован в папку назначения до того, как Tomcat коснется его. Копирование больших файлов непосредственно в файл с расширением .war может привести к тому, что Tomcat прочитает содержимое файла половинного размера.

person Whome    schedule 13.01.2014

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

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

# Extract
execute "tar" do
    user "#{tc7user}"
    group "#{tc7group}"
    installation_dir = "#{tc7target}"
    cwd installation_dir
    command "tar zxf /tmp/#{tc7tarball}"
    action :run
end

Чтобы шеф-повар не выполнял при каждом запуске, используйте свойство creates с параметром полного пути к создаваемому файлу. Следующий запуск шеф-повара увидит, что файл уже создан, и пропустит его.

person isubodh    schedule 14.09.2019