(此文章为Jenkins学习总结,如有错误敬请指出,感激不尽)
一.操作环境准备
注意:Jenkins要选2.3以上版本,因Jenkins内部很多插件不再支持低版本,相应的,2.3以后不再支持jdk1.8,在操作环境的选取上要注意。
0.实现思路:
代码推送到gitee仓库,触发Jenkins自动构建项目,Jenkins从代码仓库拉取最新代码进行打包部署
1.CentOS
虚拟机环境准备,这里本人用的centos7
2.jdk
由于各种原因,使用jdk11
1).在虚拟机中创建文件夹/home/jdk,并上传jdk包,使用 tar -zxvf 命令解压
tar -zxvf jdk-11.0.17_linux-x64_bin.tar.gz
得到 jdk-11.0.17 文件夹
2).修改 /etc/profile 文件;使用命令 vi /etc/profile,进入文件,修改环境变量
# java配置 export JAVA_HOME=/home/jdk/jdk-11.0.17 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/bin
esc + : + wq +enter 保存编辑之后的文件
3).刷新文件使之生效
source /etc/profile
4).查看当前jdk环境 java -version
看到java版本即可
2.git
由于项目是gitee项目,在系统上不做配置,稍后在Jenkins上配置
3.maven
1).在虚拟机中创建文件夹/home/maven及maven仓库/home/maven/repo,下载解压
tar -zxvf apache-maven-3.8.7-bin.tar.gz
得到apache-maven-3.8.7 文件夹
2).修改 /etc/profile 文件,添加环境变量
#maven 配置 export MAVEN_HOME=/home/maven/apache-maven-3.8.7 export PATH=$MAVEN_HOME/bin:$PATH
3).刷新配置文件
4).查看当前maven环境 mvn -version
看到maven 版本
二.Jenkins的安装与配置
1.jenkins下载安装
1.下载
wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.375.2-1.1.noarch.rpm
2.安装
yum install jenkins
3.修改配置文件: vi /etc/init.d/jenkins ,将jdk换成刚才下载的
4.修改jenkins的镜像地址,和插件下载地址,否则在页面访问将会很慢,插件下载也可能失败
1).修改/var/lib/jenkins/hudson.model.UpdateCenter.xml
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
2).修改插件下载地址:
sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
2.启动
1.开启/关闭服务
systemctl start jenkins
systemctl stop jenkins
开启后可以查看jenkins的当前状态
systemctl status jenkins
当看到如图状态,表示服务已开启
2.关闭防火墙,使浏览器可以访问jenkins主页
systemctl stop firewalld
3.分布式项目需要配置hosts文件各服务地址,linux系统下hosts文件配置:
vi /etc/hosts
如:
4.有些jar包可能在线上仓库没有,需要手动打进本地maven仓库
其中: -Dfile: 对于你的jar包的位置 -DgroupId -DartifactId -Dversion三个参数分别对于pom.xml文件中的配置参数选项:如下所示:
<dependency> <groupId>com.test.gmssl</groupId> <artifactId>gmssl-demo</artifactId> <version>1.0</version> </dependency>
jar包打入成功:
3.访问
浏览器访问:ip+端口号(linux查看ip地址: ip addr ,端口默认8080)
第一次访问的时候需要解锁,在虚拟机内输入该地址以获取管理员密码
在选择插件安装直接选择推荐,快速进入
注:初次启动在没有修改jenkins镜像地址的情况下会安装失败,如图
else 正常下载:
进入首页之后提示创建第一个用户:
完成之后进入主页,配置全局jdk和maven环境
maven:
jdk:
在插件里面去安装gitee plugin:为代码仓库拉取最新代码做准备
在插件仓库去安装publish over ssh:在jenkins项目编译后将使用其部署到服务器
三.项目实战
1.新建一个项目,开始配置,因为我们的项目是一个maven项目,所以直接选maven,在运用熟悉后可以选第一个高自由度的自由风格
源码管理:选择代码来源,代码所在仓库地址,配置git账号密码
构建触发器:这里是配置触发代码构建的条件,我们可以手动构建,也可以当代码仓库发生改变时自动构建
注意红框中的服务器地址,要修改成外网可以访问的url,否则gitee连接不上jenkins
webhook密码是选填项,如果填写,对应的git仓库也要填写
post step:项目部署设置模块
添加项目启动脚本
点击应用,保存,设置完成,尝试构建
查看控制台,构建情况
此时项目已经部署到服务器,根据所编写的脚本服务器将完成后续操作。
参考脚本:
#!/bin/sh echo ================================= echo 自动化部署脚本启动 echo ================================= echo 停止原来运行中的工程 APP_NAME1=XXX1#克隆远程仓库项目名字 APP_NAME2=XXX2 ... #根据APP_NAME1变量杀进程 tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Stop Process...' kill -15 $tpid fi sleep 2 tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpid else echo 'Stop Success!' fi #根据APP_NAME2变量杀进程 tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Stop Process...' kill -15 $tpid fi sleep 2 tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpid else echo 'Stop Success!' fi ... //进入1项目目录 cd target1/ echo 启动1项目 nohup java -jar xxx1.jar &> XXX1.log &#注意,改为自己的.jar包名//进入1项目目录 cd target2/ echo 启动2项目 nohup java -jar xxx2.jar &> XXX2.log & ... echo 项目启动完成
尝试接口访问: