天天看点

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

jenkins自动部署一.操作环境准备

看到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

jenkins自动部署一.操作环境准备

 看到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换成刚才下载的

jenkins自动部署一.操作环境准备

 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      

当看到如图状态,表示服务已开启

jenkins自动部署一.操作环境准备

 2.关闭防火墙,使浏览器可以访问jenkins主页

systemctl stop firewalld      

3.分布式项目需要配置hosts文件各服务地址,linux系统下hosts文件配置:

vi /etc/hosts      

如:

jenkins自动部署一.操作环境准备

 4.有些jar包可能在线上仓库没有,需要手动打进本地maven仓库

jenkins自动部署一.操作环境准备

 其中: -Dfile: 对于你的jar包的位置 -DgroupId -DartifactId -Dversion三个参数分别对于pom.xml文件中的配置参数选项:如下所示:

<dependency> <groupId>com.test.gmssl</groupId> <artifactId>gmssl-demo</artifactId> <version>1.0</version> </dependency>

jar包打入成功:

jenkins自动部署一.操作环境准备

3.访问

浏览器访问:ip+端口号(linux查看ip地址: ip addr ,端口默认8080)

jenkins自动部署一.操作环境准备

 第一次访问的时候需要解锁,在虚拟机内输入该地址以获取管理员密码

jenkins自动部署一.操作环境准备

 在选择插件安装直接选择推荐,快速进入

jenkins自动部署一.操作环境准备

 注:初次启动在没有修改jenkins镜像地址的情况下会安装失败,如图

jenkins自动部署一.操作环境准备

 else 正常下载:

jenkins自动部署一.操作环境准备

 进入首页之后提示创建第一个用户:

jenkins自动部署一.操作环境准备

 完成之后进入主页,配置全局jdk和maven环境

maven:

jenkins自动部署一.操作环境准备
jenkins自动部署一.操作环境准备

 jdk:

jenkins自动部署一.操作环境准备

 在插件里面去安装gitee plugin:为代码仓库拉取最新代码做准备

在插件仓库去安装publish over ssh:在jenkins项目编译后将使用其部署到服务器

三.项目实战

1.新建一个项目,开始配置,因为我们的项目是一个maven项目,所以直接选maven,在运用熟悉后可以选第一个高自由度的自由风格

jenkins自动部署一.操作环境准备

源码管理:选择代码来源,代码所在仓库地址,配置git账号密码

jenkins自动部署一.操作环境准备

构建触发器:这里是配置触发代码构建的条件,我们可以手动构建,也可以当代码仓库发生改变时自动构建

jenkins自动部署一.操作环境准备
jenkins自动部署一.操作环境准备

 注意红框中的服务器地址,要修改成外网可以访问的url,否则gitee连接不上jenkins

webhook密码是选填项,如果填写,对应的git仓库也要填写

jenkins自动部署一.操作环境准备
jenkins自动部署一.操作环境准备

post step:项目部署设置模块

jenkins自动部署一.操作环境准备

 添加项目启动脚本

jenkins自动部署一.操作环境准备
jenkins自动部署一.操作环境准备

 点击应用,保存,设置完成,尝试构建

查看控制台,构建情况

jenkins自动部署一.操作环境准备

 此时项目已经部署到服务器,根据所编写的脚本服务器将完成后续操作。

参考脚本:

#!/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 项目启动完成      

尝试接口访问:

jenkins自动部署一.操作环境准备