0
点赞
收藏
分享

微信扫一扫

将单独的java服务发布到指定服务器上运行,jenkins上可以选择项目路径发布,停止,重启,静态查看服务日志,动态查看服务日志

七千22 2023-05-05 阅读 52

软件环境:jenkins+git+gitlab+tomcat

jenkins页面如下:

将单独的java服务发布到指定服务器上运行,jenkins上可以选择项目路径发布,停止,重启,静态查看服务日志,动态查看服务日志_重启


java服务在远程服务器是以www普通用户来运行的

2,jenkins General配置如下:

配置钉钉机器人,和构建保留天数个性化定制

将单独的java服务发布到指定服务器上运行,jenkins上可以选择项目路径发布,停止,重启,静态查看服务日志,动态查看服务日志_重启_02


3, jenkins构建参数定义

将单独的java服务发布到指定服务器上运行,jenkins上可以选择项目路径发布,停止,重启,静态查看服务日志,动态查看服务日志_重启_03

将单独的java服务发布到指定服务器上运行,jenkins上可以选择项目路径发布,停止,重启,静态查看服务日志,动态查看服务日志_重启_04


4.jenkins构建环境,这个需你下载Password Parameters插件才有的,因为我远程是用www用户发布的,这个的www还有密码就是远端服务器远程账号和密码

将单独的java服务发布到指定服务器上运行,jenkins上可以选择项目路径发布,停止,重启,静态查看服务日志,动态查看服务日志_tomcat_05


5.jenkins构建Execute shell

构建步骤全靠这里面的脚本内容来执行

将单独的java服务发布到指定服务器上运行,jenkins上可以选择项目路径发布,停止,重启,静态查看服务日志,动态查看服务日志_tomcat_06

脚本内容

#########################################################################################################
##新建jenkins任务的时候,修改下面自定义参数即可
######主机定义#############################
host1()
{
##普通用户登录远程发布服务器#################
host=www@10.0.0.81
##普通用户密码,使用jenkins 加密了密码Mask passwords and regexes (and enable global passwords)
password=$www
##远程服务器的ssh端口号
port=59878
 
######远程主机项目目录######################
redeploypath=
/usr/local/tomcat/webapps
}
 
################获取编译包###########
build()
{
#####打印当前代码分支##############
echo
"当前代码分支 $project "
 
#####打印当前jenkins工作空间目录###
echo
"当前工作空间目录 $WORKSPACE "
cd $WORKSPACE
 
[ -d ${WORKSPACE}/${project} ] && 
rm -rf ${WORKSPACE}/${project}
#####git clone代码#########
git clone http://linghuchong:xxxxxx@gitlab.10heroes.cn/slsk/${project}.git
 
if [[ "${project}" == "slsk-gm" ]];then
war_file="GameManager.war"
    
war_dir="GameManager"
elif [[ "${project}" = "slsk-portal" ]];then
  war_file="entertain.war"
  war_dir="entertain"
fi
#####查看初次打包结果##############
/usr/bin/ls -lh $WORKSPACE/${project}/${ENV}/${war_file}
 
 
#####打包目录######################
war=$WORKSPACE/${project}/${ENV}/${war_file}
}
 
 
#####发布######
publish()
{
######判断下远程主机目录是否存在,不存在即创建###################
sshpass -p $password ssh
-p $port -o StrictHostKeyChecking=no  $host 
"if [ ! -d "
$redeploypath
" ]; then mkdir $redeploypath; fi"
 
#########发布前关闭##################################
sshpass -p $password 
ssh
-p $port -o StrictHostKeyChecking=no  $host 
"sh /usr/local/tomcat/bin/shutdown.sh"
 
######重新发布项目时,会清空一下远程主机项目目录
sshpass -p $password ssh -p $port -o StrictHostKeyChecking=no $host "if [ -d "${redeploypath}/ROOT" ];then  rm -rf ${redeploypath}/ROOT && rm -f ${redeploypath}/ROOT.war;fi"
 
sshpass -p $password ssh -p $port -o StrictHostKeyChecking=no $host "if [ -d "${redeploypath}/${war_dir}" ];then rm -rf ${redeploypath}/${war_dir};fi"
 
sshpass -p $password ssh -p $port -o StrictHostKeyChecking=no $host "if [ -f "${redeploypath}/${war_file}" ];then rm -f ${redeploypath}/${war_file};fi"
 
 
######将要运行的GameManager.war包传到远程主机目录###########################
sshpass -p $password /usr/bin/scp -P $port -o StrictHostKeyChecking=no  -r -p $war  $host:$redeploypath
 
 
######执行远程主机脚本启动项目##################################
sshpass -p $password ssh -p $port -o StrictHostKeyChecking=no   $host "sh /usr/local/tomcat/bin/startup.sh"
######查看远程主机启动的jar#####################################
sshpass -p $password ssh -p $port -o StrictHostKeyChecking=no   $host "ps -ef|grep "tomcat"|grep -v grep"
}
 
##服务关闭脚本############
stopserver()
{
######远程执行脚本关闭服务#####################################
sshpass -p $password ssh -p $port -o StrictHostKeyChecking=no $host "sh /usr/local/tomcat/bin/shutdown.sh"
}
 
####重启服务#############
restartserver()
{
######远程执行脚本停止服务,然后重启服务#########################
sshpass -p $password ssh -p $port -o StrictHostKeyChecking=no $host "sh /usr/local/tomcat/bin/shutdown.sh;  sh /usr/local/tomcat/bin/startup.sh"
}
 
####固定查看1000行日志
logprinting()
{
######查看远程主机1000行日志############################
sshpass -p $password ssh -p $port -o StrictHostKeyChecking=no $host "cd /usr/local/tomcat/logs/; tail -fn 1000  catalina.out"
}
 
####滚动查看服务日志########
logscrolling()
{
######动态120秒查看远程主机1000行日志############################
sshpass -p $password ssh -p $port -o StrictHostKeyChecking=no $host "cd /usr/local/tomcat/logs/;  timeout 120 tail -fn 1000  catalina.out "
}
 
case
"$Status"
in
               
Deploy)
               
echo
"Status:$Status"
               
host1
               
build
               
publish              
;;              
               
Stop)
               
echo
"Status:$Status"
               
host1
               
stopserver
;;
               
Restart)
               
echo
"Status:$Status"
               
host1
               
restartserver
;;
               
Logprinting)
               
echo
"Status:$Status"
               
host1
               
logprinting             
;;
               
Logscrolling)
               
echo
"Status:$Status"
               
host1
               
logscrolling             
;;
               
*)
               
echo
"warnning -- usage $0 Deploy | Stop | Restart  | Logprinting | Logscrolling   "
;;
esac






举报

相关推荐

0 条评论