我们正在尝试将maven部署到仅在一行中构成集群的许多多台服务器。
该解决方案运行良好,只是需要重复运行(每个服务器安装1次),并且我们的目标是在集成服务器(jenkins)构建成功工件后进行操作。而且,目前还不具备矩阵功能。如果只需要部署每个服务器,为什么还要再次构建该项目?(加上花费的时间)
我们一直在尝试使用Maven配置文件(每个服务器一个,并尝试一次激活所有配置文件,或者尝试使用所有服务器上的一个大型配置文件),但是使用该选项没有运气,tomcat- maven-plugin无法正常工作。
Jenkins似乎有一个基于载货的deploy插件,但一次只能处理一台服务器
有没有办法做到这一点?要么使用maven-tomcat-plugin?还是Jenkins / Hudson插件?
您的专家还有其他关于成功构建后如何将战争部署到集群的想法吗?(我试图避免使用shell脚本,只是因为可移植性问题)
如果您只需要一行就可以完成,我建议将CMD,Ant,bash等脚本作为“一行”执行,并使该脚本做多件事。
例如,如果您使用Ant …,您的一行可能是这样的:ant DeployToCluster。并且您的build.xml文件可能具有DeployToCluster可能包含许多步骤的目标。可以将其视为重构一种可以完成许多事情的代码方法。调用您的方法的代码变成了单行代码。
ant DeployToCluster
DeployToCluster
您将不可能找到一个命令来执行所要执行的操作,除非该命令只是执行别人编写的现有脚本来执行您想要的操作。
无论哪种方式,通常一次能够将代码部署到各个服务器上是一个好主意。这使您可以始终保持应用程序/服务正常运行,因为您一次只影响一个节点,而其他节点则可以继续运行。它还具有的优势是,如果发生严重错误,您将无法重新启用集群中的一个节点并诊断一台服务器的问题,而不是通过错误的部署来删除整个集群。我们的脚本遵循的部署策略步骤是:
如果任何步骤出现问题,我们始终为用户提供一个工作环境。