jenkins 远程部署项目 及常用脚本
程序员文章站
2022-06-17 17:37:32
...
背景
一个ssm项目通过jenkins在服务器中部署,项目服务器和Jenkins服务器不在一起,代码通过gitlab进行管理。
在Jenkins的配置项目服务器
在jenkins中添加 项目服务器的地址等信息,打开系统管理的系统配置
有一个 Http Servers 的选项,点击新增
此时:点击下边按钮进行,如果出现 success ,则说明配置成功!
在jenkins配置 maven 、git
1、在系统管理的全局工具配置
注意: maven/conf/settings.xml 路径不能写错,不然代码拉不下来。
2、配置git,就是写个名字,写上jenkins服务器git的路径
创建一个maven项目
新建任务,选在maven项目,我的Jenkins版本是 Jenkins ver. 2.176.3
核心配置:
构建后配置
常用的shell 脚本:
情景假设:
1、项目打包后的名字为:eric.war
shell解读:
1、查出已经部署的此项目的进程,并杀死
2、删除之前的eric项目文件以及压缩包(项目一定会多次部署)
2、将war复制到tomcat的webapps目录下
3、启动tomcat
#!/bin/sh
tomcat_path=/home/admin/tomcat # 服务器中 tomcat 的路径
project_web=$tomcat_path/eric.war # 包含 war 的路径
if [ -f $project_web ] ;then
echo -- stop tomcat
# 杀死 tomcat 进程
pidlist=`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`
if [ "$pidlist" = "" ]
then
echo "no tomcat pid alive!"
else
echo "tomcat Id list :$pidlist"
kill -9 $pidlist
echo "tomcat stop success"
fi
echo -- 正在部署$project_web
# 如果存在 war 存在
if [ -f $tomcat_path/webapps/eric.war ] ;then
rm -f $tomcat_path/webapps/eric.war
rm -rf $tomcat_path/webapps/eric # 删除项目war以及文件夹
echo -- 正在删除$project_web
fi
# 拷贝新的war包
cp $project_web $tomcat_path/webapps/eric.war
# start tomcat - 启动tomcat
echo $tomcat_path
export JAVA_HOME=/usr/lib/jvm/jdk
${tomcat_path}/bin/startup.sh
else
echo $BUILD_ID - 未找到$project_web
fi
简单总结,如果不足欢迎大家指出交流!
上一篇: smarty模板中如何写循环