用Jenkins实现项目的自动部署。
当前环境模拟线上生产环境:
一台阿里云服务器 专门做Jenkins服务器,安装环境 :jdk8u144,Jenkins,maven3.5.0,Git
一台应用服务器 专门部署应用,安装环境:jdk8u144,tomcat
部署流程:
1.用户提交代码到Git仓库
2.Jenkins服务器从指定Git仓库拉去代码,使用maven编译打包。
3.Jenkins服务器ssh连接应用服务器,将打包好的war或者jar包传送到应用服务器指定位置,例如 tomcat/webapps
4.Jenkins服务器在应用服务器远程执行脚本文件 重启应用服务器tomcat 或者 在应用服务器执行 java -jar 启动当前项目。
操作流程:
1.安装Jenkins
官网wiki参考地址:Jenkins
1.1添加Jenkins库到yum库,下载安装
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum install jenkins
1.2 启动停止命令
service jenkins start/stop/restart
chkconfig jenkins on
1.3 密码设置
首次启动会提示初始密码位置,找到初始密码,复制,用初始密码来生成新的密码,位置一般在:
/var/lib/jenkins/secrets/initialAdminPassword
2.安装需要的插件
需要用到如下两个插件,Maven Integration plugin用来支持构建maven项目,Publish Over SSH用来把构建好的部署包传送到指定服务器的指定位置。
2.1Maven Integration plugin
2.2Publish Over SSH
3. 配置Jenkins
3.1全局工具配置
分别配置jdk ,maven,Git的安装位置,docker的话 暂时没用到,之后需要用的地方再补充
jdk:
Git:
maven:
4.在Jenkins新建maven部署项目
5.配置项目
5.1 配置git地址
5.2 设置编译参数
5.3 设置部署服务器参数
点击增加构建后操作步骤,添加 send build artifacts over ssh 项
配置部署参数:
参数解释:
Source files:源文件路径,从工作路径开始到编译打包生成war包的路径,例如:我要部署mall-manager-service模块,路径为:mall-manager/mall-manager-service/target/*.war
Remove prefix:需要移除的路径前缀,如果不填,将会把上面的包含 *.war 的整个文件夹部署到目标服务器,应为我们部署路径为目标服务器的tomcat/webapps,所以只需要*.war 包即可,故移除路径前缀应指定为:mall-manager/mall-manager-service/target/
Remote directory:部署的目标服务器远程目录,当前项目填写Tomcat路径
Exec command: 项目包传送完成后执行的命令,一般执行 重启Tomcat的脚本文件
5.4 目标服务器自动化脚本
#!/bin/sh -ilex
TOMCATPATH=/usr/server/tomcat-8.0.52/
#tomcat 路径
TOMCATPORT=8080
#tomcat 端口
pIDa=`/usr/sbin/lsof -i :$TOMCATPORT|grep -v "PID" | awk '{print $2}'`
cd /usr/server/tomcat-8.0.52/webapps/
# -f 文件 -d 目录
if [ -f mall-manager-service.war ];then
echo "部署文件存在"
rm -rf mall-manager-service.war
else
echo "部署文件不存在"
fi
if [ -f mall-manager-service-1.0-SNAPSHOT.war ];then
echo "替换部署文件"
mv mall-manager-service-1.0-SNAPSHOT.war mall-manager-service.war
fi
cd /usr/server/tomcat-8.0.52/bin
if [ "$pIDa" != "" ];
#判断该端口是否被占用
then
#如果被占用
echo "tomcat运行中"
./shutdown.sh
sleep 6
./startup.sh
else
#如果不被占用
echo "tomcat未启动"
./startup.sh
#直接重启
fi
6.执行构建
查看目标服务器:
构建并部署成功
7.需要注意的问题
1. maven 依赖下载失败
查看maven本地保存位置文件夹的权限,
chmod -R 777 repository