工作中jenkins+jboss持续集成问题汇总帖

场景一  一个jboss容器内只部署一个服务 standalone模式

这种情况下,解决方案很多。目前再用的是通过jenkins的punish over ssh 将构建好的war包放到目标主机上,然后直接使用命令查找到jboss进程ID,然后kill掉。替换war包后重启jboss即可。当然也可以通过命令行

$JBOSS_HOME/bin/jboss-cli.sh --connect ip:port --comands='shutdown'


场景二 一个jboss容器中部署多个服务 standalone模式

这种情况下使用场景一的方式,在更新一个服务的时候所有服务都要重启,消耗时间过长。所以采用命令行模式undeploy掉部署的war包,然后再deploy新的war

$JBOSS_HOME/bin/jboss-cli.sh --connect ip:port --comands='undeploy $war'
$JBOSS_HOME/bin/jboss-cli.sh --connect ip:port --comands='deploy $path/$war'
$JBOSS_HOME/bin/jboss-cli.sh --connect ip:port --comands='reload'

实际操作过程中,通过jenkins出发脚本,一直触发的是远程连接 ,要求输入用户名密码。

Authenticating against security realm: ManagementRealm

后查明是jboss启动用户与连接用户不一致导致的。自己挖了一个坑,当时还以为是jenkins的问题、jboss版本问题、操作系统问题,最后一一排除之后发现是启动用户的问题。。。着实绕了一个大圈。

后来启动用户调整后,脚本内的第一个命令总是无法执行,报错链接超时,接下来的命令都正常。后通过别的jenkins调用正常,很奇怪,在undeploy执行前 加一个简单的ls 命令解决。



你可能感兴趣的:(jboss)