.war文件打包为JBOSS/Tomcat的RPM - 最佳实践?

Chr*_*ris 6 jboss rpm war

我正计划将WAR文件打包为RPM.当前的部署过程对我们不起作用,我修复它的想法是在RHN Satellite中创建一个新的自定义频道,并通过该频道发布我的WAR文件.目前(因为我们试图赢得一些时间)我正在通过Satellite管理一些配置文件,因此配置不是一个大问题.我们不会因为很多原因将它们保留在WAR中,但这是不同的故事.

无论如何,有没有人将WAR打包为RPM?你做热部署还是强制JBOSS/Tomcat重启?是RPM安装后还是作为其一部分?您的SPEC文件是什么样的?我可以把它看作一个例子吗?您是否签入SPEC for JBOSS/Java/Oracle客户端或只安装WAR?有什么故事可讲吗?有什么大问题吗?我应该考虑别的吗?我可以构建RPM没问题但是我想听听使用WAR文件和JBOSS这样做的最好方法是什么(一些Tomcats仍在这里运行但是很快就会逐步淘汰 - 所以我不太担心它们).

我确实适合任何输入.

在此先感谢亲切的问候克里斯

小智 7

我已将WAR文件及其配套配置文件打包为RPM.我的SPEC文件检查JBoss是否正在运行.如果是,则安装将退出并显示错误消息,请求在安装之前停止JBoss.

通常,杀死进程或通过RPM强制重启不是一个好主意.安装负责人应该有一个单独的程序来执行此操作.

其他考虑:

1.您的组织是否在同一台服务器上安装了其他设备?

如果是这样,您可能希望标准化服务器上​​所有安装的路径.(例如,/ usr/local/bin/myorg /)拥有自定义*nix用户和组也可能会有所帮助,为服务器上的所有安装设置了文件属性.

你想要一个可重新定位的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."
Run Code Online (Sandbox Code Playgroud)