我们将许多Java Web应用程序部署到Weblogic和Jboss服务器。部署通常如下所示:

  1. 将代码和默认配置复制到应用程序服务器或Weblogic管理服务器上的登台目录中。

  2. 编辑属性文件以设置特定于环境的变量(IP地址,用户名等)

  3. 运行ant来创建ear / war,并将其放在适当的目录中。

  4. 启动服务

    事实证明,使用Puppet作为我们的配置管理工具时,这是一组非常不友好的步骤。我们希望使用一个与Puppet的Package,File,Service trifecta更加相似的过程,但是在构建“ ear / war”之前必须配置属性会使此操作变得很困难,因为它需要额外的步骤才能在Pearpet上构建war / ear。填充属性后,主机。

    是否有一种方法可以构建与环境无关的战争/战争,并保持外部配置,从而省去了额外的构建步骤?

    有人专门使用Web应用程序和Puppet吗,您有什么建议吗?

有帮助吗?

解决方案

我对 tomcat 和.war webapps所做的工作是使用未压缩的war构建系统软件包,然后处理conf文件。我根本没有处理过Weblogic或JBoss,所以我不知道它如何处理未压缩的WAR内容。

1)构建一个包(RPM),在其中我完成所有.war构建工作,然后执行以下操作: 通用标签

(这样,解压缩后的.war文件就在软件包中,而其中没有实际的.war文件。使用tomcat时,它将留下该目录,特别是如果它没有写访问权限,因为该文件属于root)

2)人偶之类的东西: 通用标签

此特定程序包在8个目录中包含32个文件,我们正在对其进行修改或推出以对其进行配置。如果只是几个文件,我将使用几个简单的file{}资源来管理那些文件,而不是递归的东西。

如果您不想构建系统类型的程序包,则可以将战争专用的file{}资源放入备用目录,exec{"unzip ...": creates => '/path/to/unzipped/webapp;},并让file{}资源进行配置需要Exec["unzip ..."]

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top