我认为处理这种情况的理想方法是通过包装。如果您的客户端部署在某种 unix 服务器上(我在其中包括 Linux),那么他们已经在使用包管理器来管理其服务器上的系统软件。包管理器能够安装、删除、升级软件,并且对您来说至关重要的是,可以安装某些包所依赖的其他包。
因此,您可以打包 JBoss,以便包管理器可以安装它,然后打包您的应用程序,指定对 JBoss 的依赖关系。当客户端安装您的应用程序包时,JBoss 将自动安装。
但是,此计划仅在您的客户设置了一定程度的基础架构时才有效。他们需要使用带有包管理器的系统。他们需要有一种管理包安装的方法(配置管理工具,如 Puppet、Chef、Ansible 或供应商专有的东西是理想的选择)。他们需要能够在他们的环境中分发自定义包。他们需要有一种方式来接受您的自定义包,或者接受包构建脚本然后自己构建包。
在任何规模的服务器环境中,系统管理员无论如何都应该并且可能会拥有所有这些基础设施,因为它是管理一组服务器的基础。但是,如果您的客户没有它,那么设置起来可能会很费力。
也就是说,这种方法的绝对最小版本是让您通过电子邮件或 SFTP 或其他方式向他们发送应用程序和 JBoss 的包文件,然后让系统管理员手动安装它们(例如使用yum localinstall
)。这并不比让他们手动安装 JBoss 好多少,但这是朝着正确方向迈出的一步。