1.通过jenkins传递部署包到服务器,调用自动部署shell完成jboss6.4的域模式部署;
2.自动部署shell如下:
完成部署包重命名(从jenkins过来的包可能没有改名;)、
调用jboss cli命令(分2步,首先从group里移除已部署的包就算没有也没关系,再将部署包部署到指定group)、
备份移除部署包(将部署包备份到指定文件夹以防部署回退,并删除该部署包);
#!/bin/bash
export LANG="zh_CN.UTF-8"
export JAVA_HOME=/opt/app/jdk1.8.0_66
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
echo $PATH
jboss='/opt/app/jboss-eap-6.4/bin'
datas='/var/mydatas/LGHA_data'
war='lgha.war'
war_dir='lgha_web'
src_war='lgha-web-1.0.war'
if [ ! -f "${datas}/${war_dir}/temp/${src_war}" ];then
echo "not exist ${src_war}"
exit 1
fi
mv ${datas}/${war_dir}/temp/${src_war} ${datas}/${war_dir}/temp/${war}
#sh ${jboss}/jboss-cli.sh --file=${datas}/scripts/jboss_lgha
sh ${jboss}/jboss-cli.sh --commands="connect 172.21.129.85:9999,undeploy ${war} --server-groups=my_group_8090"
sh ${jboss}/jboss-cli.sh --commands="connect 172.21.129.85:9999,deploy /var/mydatas/LGHA_data/${war_dir}/temp/${war} --server-groups=my_group_8090,quit"
echo 'invoke jboss-cli'
mv ${datas}/${war_dir}/temp/${war} ${datas}/${war_dir}/$(date +%Y%m%d-%H%M%S)_${war}
echo 'backup file'
上面加了export java的path;主要是有时jenkins里远程执行shell时,看不到java路径,需要显示的设置下~
3.jboss启动停止命令
域模式
alias jbstart='nohup sh ${JBOSS_HOME}/bin/domain.sh &'
alias jbstop='${JBOSS_HOME}/bin/jboss-cli.sh --connect /host=master:shutdown'