我对tomcat和 .war webapps 所做的是构建一个带有解压缩战争的系统包,然后处理 conf 文件。我根本没有处理太多 Weblogic 或 JBoss,所以我不知道它如何处理解压缩的 WAR 内容。
1)构建一个包(RPM),我在其中进行所有 .war 构建工作,然后是:
mkdir -p %{buildroot}/var/lib/tomcat5/webapps/APP
cd %{buildroot}/var/lib/tomcat5/webapps/APP
unzip ../APP.war
rm ../APP.war
(这样解压缩的 .war 文件就在包中,其中没有实际的 .war 文件。使用 tomcat 后,它将不理会该目录,特别是如果它没有写权限,因为文件属于根目录)
2)木偶的东西有点像:
package {
"tomcat5":
require => Package["java-1.6.0-sun"],
ensure => installed;
"java-1.6.0-sun":
ensure => installed;
"APP":
ensure => installed,
notify => Service["tomcat5"],
require => Package["java-1.6.0-sun"];
}
file {
"/usr/share/tomcat5/webapps/APP":
source => [ "puppet:///MODULE/APP" ],
ensure => directory,
ignore => [ 'CVS', '.git', '.svn', '*~' ], # ignore revision control and backup files
purge => false, # leaves other stuff alone
replace => true, # replaces stock files with ours
recurse => true, # gets everything recursively
require => Package[APP], # install package first
notify => Service[tomcat5]; # restart tomcat after
}
这个特定的包在 8 个目录中有 32 个文件,我们正在修改或推出这些文件以对其进行配置。如果只是几个文件,我会使用几个简单的file{}
资源来管理这些文件,而不是递归的东西。
如果您不想构建系统类型的包,您可以file{}
将战争资源放入备用目录,exec{"unzip ...": creates => '/path/to/unzipped/webapp;}
并且file{}
配置资源需要Exec["unzip ..."]
.