配置Jenkins实现测试环境的自动构建和部署,减少手动操作,提高效率

大家好,我是阿飞云

怕什么真理无穷,进一步有近一步的欢喜


本文是团队内小兄弟的学习笔记整理而来。看完本文大体了解为什么要使用Jenkins,部署Jenkins依赖的环境,以及如何用Jenkins进行应用自动部署。

为什么要搭建Jenkins环境
在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;或者前后端分离后,经常会修改接口,然后重新部署;这些情况都会涉及到频繁的打包部署;手动打包常规步骤:

•1.提交代码•2.问一下同组小伙伴有没有要提交的代码•3.拉取代码并打包(war包,或者jar包)•4.上传到Linux服务器•5.查看当前程序是否在运行•6.关闭当前程序•7.启动新的jar包•8.观察日志看是否启动成功•9.如果有同事说,自己还有代码没有提交……再次重复1到8的步骤!!!!!(一上午没了)

那么,有一种工具能够实现,将代码提交到git后就自动打包部署,答案是肯定的:Jenkins 。当然除了Jenkins以外,也还有其他的工具可以实现自动化部署,如Hudson等 ,只是Jenkins相对来说,使用得更广泛。

总结一下:不搭建自动化环境的话,如果需求急,任务多的情况上,通过人工的方式操作,那效率真的太低了,拥有自动化部署环境,那幸福感很快就上来了:

•程序自动部署,节约时间•环境一键部署,不怕频繁改代码

Jenkins 基本介绍
Jenkins是一个开源软件项目,是基于Java开发的一种[持续集成]工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

基本环境:

•1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。•2.git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。•3.maven客户端,因一般java程序是由maven工程,需要maven打包,当然也有其他打包方式,如:gradle 以上是自动化部署java程序jenkins需要的基本环境,请自己提前安装好,下面着重讲解Jenkins的安装部署配置。

Jenkins部署安装
本次使用虚拟机进行Jenkins自动化部署环境的搭建,相关的软件版本和基本环境安装如下:

一、环境准备
1、Linux
本文基于虚拟机进行部署操作,操作系统版本:Ubuntu 20.04.3 LTS

本次用到的服务器信息:3台linux虚拟机 192.168.179.130:jenkins主节点 192.168.179.133:jenkins从节点 192.168.179.132:应用服务器

2、JDK安装
更新软件包列表
sudo apt-get update
 
 
安装openjdk-8-jdk:
sudo apt-get install openjdk-8-jdk
 
 
查看java版本,看看是否安装成功
java -version
这里我安装的java版本是:

3、Maven安装
安装maven的命令

sudo apt install maven
成功后使用命令查看版本等信息

mvn -v


二、部署Jenkins
1、war包下载
wget https://mirrors.huaweicloud.com/jenkins/war/latest/jenkins.war
2、启动Jenkins
java -jar jenkins.war --httpPort=8001
启动后会生成密码(61d703f7a3464674b8a8a36b4dd915f5),如图所示:

3、初始化Jenkins
在浏览器中输入http://your_ip_or_domain:80[1]01耐心等待插件下载完成输入想创建的用户名和密码:admin/admin123456初始界面如下:

4、Jenkins插件
插件能够帮助我们更好的使用jenkins,这里介绍几个常用的插件。具体操作步骤如下

1)rebuilder
重新构建任务

2)safe restart
安全重启jenkins

3)Maven Integration plugin
帮助创建maven任务

4)git parameter
安装此插件后可以进行参数化构建,后续会介绍操作方法,详细的操作也可以参考:http://www.mydlq.club/article/45/

5)publish-over-ssh
此插件可以帮助我们将编译的好jar/war包通过ssh的方式丢到对应的服务器上,但是目前publish-over-ssh暂停发布了,在插件管理中搜不到此插件。

5、jenkins配置
1)安全配置
jenkins默认的安全性是用户登陆后可以做任何事情,不是很安全,所以需要对非管理员账号做一些限制 进入全局安全配置

1、配置管理员权限 找到授权策略后,点击安全矩阵->add user,选择创建的admin账号,全选权限。

2、配置普通账号 目前没有普通的账号,需要新建一个账号,具体操作步骤:系统管理->管理用户->新建用户给该账号取消掉管理员权限,此账号没有系统管理的权限

2)全局工具配置
操作步骤:系统管理->全局工具配置 1、JDK配置 JAVA_HOM:/usr/lib/jvm/java-8-openjdk-amd64不知道JDK安装在哪的可以通过以下命令查找

# 从环境变量PATH中,定位/返回与指定名字相匹配的可执行文件所在的路径
which java


file /usr/bin/java
重复使用file命令,替换file后的输入内容为最新结果,最后可以找到安装目录

2、maven配置

三、创建构建任务
1、git配置
在创建任务之前需要配置一下git或者其他代码管理仓库,确保服务器能够拉取到代码,这里我使用的是gitee 这里不详细展开说明,自行百度或参考:https://blog.csdn.net/liyanpig/article/details/105879263

2、创建maven项目
来到jenkins首页,点击左上角或下图所示地方创建任务jenkins可以创建多种类型的任务,这里以maven任务举例说明。如果你的任务类型不存在下图选中的任务类型,那就是没有下载Maven Integration plugin插件

选择源码管理->Git,输入项目gitee地址,初次使用时会报如下错误添加凭证,点击上图添加,输入gitee的账号密码后点击添加即可,然后选择刚刚添加的凭据,就不会报错了Additional Behaviours(可选),填写目录名,选择后任务会生成一个子目录,便于管理在Build处新增maven命令clean install,然后点击保存->立即构建,执行任务可以点击此处查看构建日志可以看到输出success,表明任务执行成功可以发现服务器中生成了jar包

3、执行shell命令
jenkins不光可以进行编译等操作,在任务执行过程中还可以执行shell命令,帮助我们更好的完成自动化部署操作,选择刚刚创建的任务,进行配置,选择执行shell,如下图所示我们可以在maven编译完成后执行shell命令将jar包scp到应用服务器,具体shell命令如下所示: 这里注释了jar包的启动脚本命令,测试时可以简单使用java -jar替代

# Jenkins执行脚本:
#####
pwd=$JOB_NAME;
appName=${pwd##*-};
jarName="${appName}-1.0-SNAPSHOT";
export LANG=zh_CN.UTF-8
ssh [email protected] "mkdir -p /home/lilei/service/$JOB_NAME";
scp -r $WORKSPACE/target/*.jar [email protected]:/home/lilei/service/$JOB_NAME;
ssh [email protected] "/home/lilei/service/$JOB_NAME/start.sh";
上述命令执行成功的前提是jenkins服务器与应用服务器之间实现了免密登陆,否则会失败。以上脚本其实可以使用publish-over-ssh插件使用,功能更加丰富强大,可惜暂停发布了,感兴趣的可以自行探索

4、参数化构建
上述任务构建时基于mater分支,不能够灵活的切换分支。可以通过设置参数化构建过程动态设置每一次任务执行时的分支。前提条件:安装git parameter插件

在任务配置中勾选参数化构建过程,选择git参数名称:branch,类型:分支修改源码管理中的指定分支为${branch}点击build with parameters可以看到项目的所有分支,选择某个分支就可以构建任务了

四、多节点构建
业务量变大时,单台的jenkins进行自动化构建部署,就显得没那么灵活,jenkins的集群无需在额外的主机安装jenkins。

1、创建节点
创建节点之前先将节点服务器添加到known_hosts文件中。可以直接通过ssh命令在部署jenkins的服务器中登陆节点服务器,登陆成功就会将节点服务器添加到known_hosts文件中。

-- 生成ssh秘钥
ssh-keygen -t rsa
如果没有进行上一步,会报如下错误新建节点添加凭据,这里用户名和密码填写节点服务器的新建节点成功后,点击节点启动,成功后如下图所示

2、选择节点
任务构建可以指定节点进行,具体操作步骤如下图所示这里的值可以是节点的名称,也可以是节点标签,一个标签对应1个或多个节点。节点的标签在节点创建的时候设置

总结
总体上来说,安装Jenkins部署环境还是比较简单的,在安装过程中遇到一些问题也能找到解决方案。通过实际操作,进行Jenkins安装,更加全面的认识和深入了解Jenkins的使用,也对自动化构建有了进一步的掌握,在后续的工作中,可以在实际项目中进行使用,让其发挥威力,提升工作效率。

资料
Jenkins中文网 :http://www.jenkins.org.cn/
用Jenkins自动化搭建测试环境:https://www.imooc.com/learn/1008

推荐阅读

Intellij IDEA 牛X插件!工作效率提升10倍!

如何保证RocketMQ/RabbitMQ消息数据100%不丢失

【一个人看起来在进行逻辑思考,但其实大多数时间他只是在进行记忆检索。】
————————————————
版权声明:本文为CSDN博主「阿飞云」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010648555/article/details/123143960

你可能感兴趣的:(jenkins,运维)