.war файлы, упакованные как RPM для JBOSS / Tomcat - PullRequest
6 голосов
/ 27 января 2012

Я планирую упаковать файлы WAR как RPM.Текущий процесс развертывания у нас просто не работает, и моя идея исправить это состояла бы в создании нового пользовательского канала в RHN Satellite и публикации моих файлов WAR через этот канал.В настоящее время (поскольку мы пытаемся выиграть некоторое время) я управляю некоторыми конфигурационными файлами через Satellite, поэтому настройки не являются большой проблемой.Мы не держим их в WAR по многим причинам, но это другая история.

В любом случае, кто-нибудь упаковывал WAR как RPM?Вы делаете горячее развертывание или принудительно перезапускаете JBOSS / Tomcat?Это после установки RPM или как ее часть?Как выглядит ваш файл SPEC?Могу ли я увидеть это в качестве примера?Вы проверяете в своем SPEC для клиента JBOSS / Java / Oracle или просто устанавливаете WAR?Какие истории рассказать?Есть серьезные проблемы?Должен ли я рассмотреть что-то еще?Я могу создавать RPM без проблем, но я хотел бы услышать, как лучше всего это сделать с файлами WAR и JBOSS (некоторые Tomcats все еще работают здесь, но скоро будут прекращены, так что я не слишком беспокоюсь за них).

Я подхожу к любому вводу.

Заранее благодарим Kris Regards

Ответы [ 2 ]

7 голосов
/ 22 июня 2012

Я упаковал файл WAR и соответствующий ему файл конфигурации как RPM. Мой файл SPEC проверяет, работает ли JBoss. Если это так, установка завершается с сообщением об ошибке, требующим остановки JBoss перед установкой.

В общем случае не стоит убивать процессы или принудительно перезапускать их через RPM. Ответственный за установку должен иметь отдельную процедуру для этого.

Другие соображения:

1. Есть ли в вашей организации другие установки на том же сервере?

Если это так, вы можете стандартизировать путь, по которому будут проходить все установки на сервере. (Например, / usr / local / bin / myorg /) Также может быть полезно иметь пользователя и группу * nix, для которых атрибуты файлов устанавливаются для всех установок на сервере.

2. Вы хотите переместить RPM?

Есть ли вероятность, что вы захотите изменить путь по умолчанию для вашей установки? Если это так, поможет перемещаемый RPM. Существуют условия, при которых перемещаемый RPM может не работать, поэтому ознакомьтесь с , чтобы рассмотреть на www.rpm.org .

3. Хотите создать резервную копию существующего развертывания при запуске RPM?

Если это так, вам нужно написать этот код в файле SPEC.

Вот мой полный файл SPEC:

Summary: Summary for my Java project
Name: Name for my Java project
Version: 2.1.2
Release: 5
Requires: jboss >= 5.1
BuildArch: noarch
Group: Internet / Applications
Prefix: /usr/local/bin
License: (C) Copyright my organization
Vendor: my organization

%description 
Description for my Java project

%prep
# Check if the WAR file has been created

%install
# Copy war file to buildroot's Jboss deployment directory
# Copy config file to buildroot's Jboss config directory

%files
# Set file permissions and ownership

%pre
# Check if JBoss deployment path exists on the web server. 
# If not, exit with an error. 

# Check if JBoss config file path exists on the web server. 
# If not, exit with an error. 

# Check if custom user 'myuser' exists. If not, exit with an error.
# Check if custom group 'mygroup' exists. If not, exit with an error
# Check if JBOSS is running. If yes, exit with an error.   
# Take backup of existing deployment, if needed.

%post
# Perform post-installation steps, if needed.
echo "Installation complete."
1 голос
/ 30 марта 2012

Мы планируем как-то стандартизировать установку Java webapp на Fedora, но пока ничего нет. Ребята из Debian создали довольно приятное предложение http://dep.debian.net/deps/dep7, которое вы, вероятно, должны прочитать, чтобы понять, с чем вам придется столкнуться более или менее.

Что касается перезапуска JBoss / Tomcat, я бы посоветовал против этого. Оставьте это системному администратору (веб-серверу). Они должны знать, что они обновляют и почему. Принудительный перезапуск веб-сервера все время вызывает проблемы IMO (особенно, если на одном сервере размещено несколько веб-приложений)

Я бы поставил войны в / usr / share / webapps-java. Тогда, возможно, JBoss / Tomcat использует этот каталог. Тем не менее, никаких спецификаций, извините.

...