jenkins自动部署

(此文章为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 项目启动完成

尝试接口访问:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值