百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Jenkins 企业部署图文干货-发布与回滚篇

bigegpt 2024-09-18 08:04 3 浏览

环境说明

服务器IP 服务 备注 10.4.82.119 Jenkins 第一次配置不会的可以按照我的步骤来 10.4.82.120 gitlab、tomcat 测试环境tomcat端口8083 10.4.82.115 tomcat 测试环境tomcat端口8083 Jenkins发布回滚流程

一、Jenkins介绍及安装

安装和介绍都是老生常谈的内容了,说了N+1+2+3+4+5+…..的话题了,这里直接跳过了

Jenkins yum安装

Jenkins War安装

二、Jenkins 安装配置

安装完成后的界面如下

Jenkins插件安装

Jenkins主要依赖于插件化,我们进行插件的安装

Maven Integration Maven编译插件

Role-based Authorization Strategy 权限控制插件 ## 标题 ##

AnsiColor 输出Log颜色优化插件

安装插件的步骤不详细讲解了 详细介绍

Jenkins 全局配置

1.配置jdk环境

下载

wget http://down.i4t.com/jdk1.8.0_66.tar.gz

$ tar zxf jdk1.8.0_66.tar.gz -C /usr/local/

$ ln –s /usr/local/jdk1.8.0_66 /usr/local/jdk

$ vim /etc/profile

export JAVA_HOME=/usr/local/jdk

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

$ java -version

检查

$ java -version

java version "1.8.0_151"

Java(TM) SE Runtime Environment (build 1.8.0_151-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

2.配置maven环境

$ wget http://down.i4t.com/apache-maven-3.6.1-bin.tar.gz

$ tar xf apache-maven-3.6.0-bin.tar.gz

$ mv apache-maven-3.6.0-bin.tar.gz /usr/local/

$ ln -s /usr/local/apache-maven-3.6.0/ /usr/local/maven

$ vim /etc/profile

export M2_HOME=/usr/local/maven

export PATH=${M2_HOME}/bin:$PATH

$source /etc/profile

验证

$ mvn -v

Apache Maven 3.6.0 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T03:58:13-04:00)

Maven home: /usr/local/maven

Java version: 1.8.0_151, vendor: Oracle Corporation

Java home: /usr/local/jdk1.8.0_151/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"

我们需要配置Java环境,以及maven等

配置JDK环境

配置Maven环境

下面进行gitlab安装,用于上传测试代码,Jenkins基本上已经配置完毕!

三、gitlab 安装及配置

Gitlab安装目前只需要配置一个yum源,yum install 安装即可

gitlab安装文档

我这里提供了一份hello 的Java代码用于测试

一共分为2步

1.在gitlab web界面创建test项目

2.将Java代码下载push到gitl

代码下载

wget http://down.i4t.com/hello-world-war-master.zip

[root@abcdocker hello-world-war-master]# yum install -y git && git remote add origin http://10.4.82.120/root/test.git

#这里需要在gitlab上创建项目,并且复制git地址进行push

[root@abcdocker hello-world-war-master]# git push -u origin master

Username for 'http://10.4.82.120': root

Password for 'http://root@10.4.82.120':

fatal: Authentication failed for 'http://10.4.82.120/root/test.git/'

[root@abcdocker hello-world-war-master]# git push -u origin master

Username for 'http://10.4.82.120': root

Password for 'http://root@10.4.82.120':

Counting objects: 16, done.

Delta compression using up to 2 threads.

Compressing objects: 100% (11/11), done.

Writing objects: 100% (16/16), 4.64 KiB | 0 bytes/s, done.

Total 16 (delta 0), reused 0 (delta 0)

To http://10.4.82.120/root/test.git

* [new branch] master -> master

当我们将测试代码上传完毕后

四、创建项目演示

准备工作

1.tomcat 地址相同 (多套情况)

2.tomcat 端口相同 (多套情况)

3.web 服务器添加tomcat重启脚本

4.Jenkins – web免密 (Jenkins-tomcat服务器免密)

5.修改好项目名

进入Jenkins,进行创建项目

简单说一下,我这里环境的配置

tomcat路径(多套环境只需要改后缀和端口)

/usr/local/abcdocker-test

tomcat端口 8083

tomcat服务器 10.4.82.115 10.4.82.120

我们进入82.115和82.120服务器,配置jdk和tomcat,设置端口

配置Tomcat JDK

wget http://down.i4t.com/jdk1.8.0_66.tar.gz

$ tar zxf jdk1.8.0_66.tar.gz -C /usr/local/

$ ln –s /usr/local/jdk1.8.0_66 /usr/local/jdk

$ vim /etc/profile

export JAVA_HOME=/usr/local/jdk

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

$ java -version

下载Tomcat

wget wget http://down.i4t.com/apache-tomcat-8.5.39.tar.gz

tar xf apache-tomcat-8.5.39.tar.gz

mv apache-tomcat-8.5.39 abcdocker1-test

#修改端口

sed -i s#8080#8083#g abcdocker1-test/conf/server.xml

## 将默认端口修改为8083

我们先访问默认tomcat,检查是否会因为JDK环境问题导致默认tomcat就无法启动

访问地址ip:8083

现在我们的tomcat测试基本上没有问题

配置Jenkins

1.配置Jenkins 参数化构建

[ 1 ] 创建选项参数

[ 2 ] 创建Git commit版本参数

2.Git地址配置

我们通过安装完gitlab之后,将代码上传完毕。这里需要输入项目的git地址

温馨提示:我这里已经将测试代码上传到gitlab上,怎么上传代码看上面的步骤吧。

复制git地址之后需要配置一点,那就是gitlab的地址。有2种认证方式,一种是通过账号密码,在Jenkins上创建账号密码,另外就是通过key来认证。key认证实际上就是复制Jenkins服务器的ssh公钥到gitlab上的SSH key选项。 我这里以账号密码为主

配置完成后

只要没有红色报错即可

3.日志代码高亮配置

其他选项我们不配置,这里只配置一个日志输出高亮的参数。 没有的安装上面的插件

4.maven编译参数配置

我这里的编译参数就是maven默认的编译参数,具体不讲解了。每个公司的环境不一样

clean package -Dmaven.test.skip=true

测试Jenkins就用我这个配置就OK

5.构建完执行脚本

我们需要将构建完执行脚本点开,默认Jenkins不配置shell脚本,Jenkins只是将程序设置成war包,存储下来。这样并没有发布到web服务器上

6.发布及滚回脚本

脚本内容比较多,请直接下载查看

wget http://down.i4t.com/abcdocker-jenkins.txt

脚本解释

除了这几个要修改,我们还需要修改tomcat启动和重启脚本

内容如下

下载地址wget http://down.i4t.com/abcdocker-test 还需要添加权限+x

#需要修改一下tomcat启动目录

#!/bin/bash

# description: Tomcat is a Java Servlet Container

. /etc/profile

TOMCAT_HOME=/usr/local/abcdocker1-test

start () {

TOMCAT_PID=`ps -ef |grep "$TOMCAT_HOME" |grep -v "grep" |awk '{print $2}'`

if [ -z $TOMCAT_PID ];then

/bin/bash $TOMCAT_HOME/bin/startup.sh

else

echo "$0 is running"

fi

}

stop () {

TOMCAT_PID=`ps -ef |grep "$TOMCAT_HOME" |grep -v "grep" |awk '{print $2}'`

if [ -z $TOMCAT_PID ];then

echo "$0 is not running"

else

echo "shutting down $0"

kill -9 "$TOMCAT_PID" && echo "PID $TOMCAT_PID killed."

fi

}

status () {

TOMCAT_PID=`ps -ef |grep "$TOMCAT_HOME" |grep -v "grep" |awk '{print $2}'`

if [ -z $TOMCAT_PID ];then

echo "$0 is not running"

else

echo "$0 is running PID is $TOMCAT_PID"

fi

}

case $1 in

start)

start

#tail -f $TOMCAT_HOME/logs/catalina.out

;;

stop)

stop

;;

status)

status

;;

restart)

stop

start

#tail -f $TOMCAT_HOME/logs/catalina.out

;;

*)

echo "Usage:$0 {start|stop|status|restart}."

;;

esac

我们Jenkins点击保存save,现在Jenkins就配置完毕,我们进行测试

tomcat需要启动正常

启动目录和启动脚本都要写好

访问验证结果

现在我们开始使用Jenkins发布

1.发布前确认Jenkins和web做免密(我这里已经做了,不介绍)

2.确保tomcat启动正常

3.获取gitlab的git commit地址

我们现在获取git commit地址

git commit版本不区分分支,不一定必须在master分支上,其他分支也会有

我这里只配置了test环境,我们就只演示test环境,其他环境脚本配置都差不多

点击项目---->点击构建

点击小圆圈

结果说明

git拉代码

Maven编译步骤

执行shell命令

启动服务判断,如果有一台服务启动异常,将会暂停发布。通过会自动停止异常tomcat请求

同时web服务器会自动在data目录创建备份

发版完毕,在shell脚本部分我们后期可以修改成salt,不推荐使用Publish over SSH主要是由于配置麻烦,环境不好区分。要创建多个Jenkins,使用shell或者引用批量分发脚本最为简单

发布回滚脚本流程

相关推荐

方差分析简介(方差分析通俗理解)

介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...

正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃

吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...

Python数据可视化:箱线图多种库画法

概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

方差分析 in R语言 and Excel(方差分析r语言例题)

今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...

可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图

前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...

matplotlib 必知的 15 个图(matplotlib各种图)

施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...

R ggplot2常用图表绘制指南(ggplot2绘制折线图)

ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

Python 数据可视化常用命令备忘录

本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...

统计图的种类(统计图的种类及特点图片)

统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...

实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)

大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...

通过AI提示词让Deepseek快速生成各种类型的图表制作

在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...

数据可视化:解析箱线图(box plot)

箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...

[seaborn] seaborn学习笔记1-箱形图Boxplot

1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...