私がtomcatと .war webapps で行ったことは、解凍された war を使用してシステム パッケージを構築し、conf ファイルを処理することです。私は Weblogic や JBoss をまったく扱ったことがないので、解凍された WAR がどのように処理されるのかわかりません。
1) すべての .war 構築作業を行うパッケージ (RPM) を構築し、次に次のようにします。
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 ..."]