Jboss 为傀儡部署将配置与WAR/EAR分离
我们在Weblogic和Jboss服务器上部署了大量Java web应用程序。部署通常如下所示:Jboss 为傀儡部署将配置与WAR/EAR分离,jboss,weblogic,configuration-management,puppet,Jboss,Weblogic,Configuration Management,Puppet,我们在Weblogic和Jboss服务器上部署了大量Java web应用程序。部署通常如下所示: 将代码和默认配置复制到应用程序服务器或Weblogic管理服务器上的暂存目录 编辑属性文件以设置特定于环境的变量(IP地址、用户名等) 运行ant创建ear/war,并将其放到适当的目录中 启动服务 事实证明,将Puppet用作配置管理工具是一组非常不友好的步骤。我们更喜欢一个与Puppet的包、文件、服务trifecta更为相似的过程,但是在构建ear/war之前必须配置属性,这使得这很困难,因为
有人专门使用过web应用程序和Puppet吗?你有什么建议吗?我使用tomcat和.war webapps所做的是使用解压缩的war构建一个系统包,然后处理conf文件。我没有太多处理Weblogic或JBoss,所以我不知道它如何处理解压的战争内容 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,它会将该目录单独保留,特别是当它因为文件属于root而没有写访问权限时)
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{}
资源来管理这些文件,而不是递归的东西
如果你不想构建一个系统类型的包,你可以为war做一个文件{}
资源到一个备用目录中,一个exec{“unzip…”:creates=>'/path/to/unzip/webapp;}
并让文件{}
资源配置需要exec[“unzip…”]