Я пытаюсь развернуть файл War на моем Tomcat 7, установленном кулинарной книгой на CHEF. Но ни на одном форуме не могу найти ответа на свой вопрос. Я понятия не имею, как это сделать! Я использую сервер Ubuntu 12.10. Я использую следующий рецепт: https://github.com/solarvm/tomcat7-cookbook.
Как загрузить файл WAR в кулинарную книгу Tomcat 7 от Chef?
Ответы (3)
Самый простой способ — использовать ресурс service
для остановки Tomcat, использовать ресурс bash
или файловый ресурс для копирования файла WAR, а затем использовать ресурс service
для повторного запуска Tomcat.
Та кулинарная книга, которую вы пытаетесь использовать, не выполняет развертывание файла WAR. Но я нашел этот — https://github.com/poise/application_java — который может сделать работа.
И для чего бы это ни стоило, я думаю, вы могли бы найти и лучшую кулинарную книгу по установке Tomcat. Во-первых, на сайте в кулинарных книгах сообщества Opscode есть рецепт "tomcat", который может обрабатывать Томкэт 7.
(Совет: не просто используйте первую кулинарную книгу, которую вы найдете в Google. Выполните поиск в Github и попытайтесь оценить функциональность и качество кулинарных книг)
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
Вы уже нашли папку $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 прочитает содержимое файла половинного размера.
Очень важно помнить, делая это в шеф-поваре, чтобы использовать условия защиты, чтобы шеф-повар не продолжал развертывать файл при каждом запуске. Поскольку шаги, описанные выше, в порядке, но когда вы кодируете шеф-повар, он будет копировать файл при каждом запуске и развертывании, если у вас нет условия защиты.
Возьмем, к примеру, приведенный ниже случай, шеф-повар будет выполнять это при каждом запуске.
# Extract
execute "tar" do
user "#{tc7user}"
group "#{tc7group}"
installation_dir = "#{tc7target}"
cwd installation_dir
command "tar zxf /tmp/#{tc7tarball}"
action :run
end
Чтобы шеф-повар не выполнял при каждом запуске, используйте свойство creates
с параметром полного пути к создаваемому файлу. Следующий запуск шеф-повара увидит, что файл уже создан, и пропустит его.