Jenkins 实现项目自动部署

原创
2018/05/30 01:13
阅读数 1.9K

用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

 

 

 

展开阅读全文
打赏
1
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
1
分享
返回顶部
顶部