目录

一、jenkins介绍

1丶Jenkins概述

2丶Jenkins目标

3、Jenkins特性

4、产品发布流程 

二、CI/CD是什么?

1丶CI

2丶CD

三丶环境搭建

1丶一台服务器

2丶简单的SpringBoot项目

四丶Jenkins安装

1丶拉取Jenkins镜像

2、创建目录

3、启动

五丶Jenkins配置

1丶查看容器日志

2丶进入页面后,选择推荐的插件

3丶创建一个管理员

4丶安装插件

5丶安装jdk

6丶安装maven

7丶配置ssh

六丶构建项目

1、新建项目

2、输入任务名称,选择maven

3丶设置源码管理

4、设置Maven

5、修改maven配置

6、重新构建

7丶构建后自动部署

七丶Git提交后自动构建 

1、配置URL构建触发器

2、添加用户token

3、配置Gitee的WebHooks 

 八丶测试部署验收成果

1丶提交git

2丶触发自动构建 

3丶访问项目


jenkins roles管理 jenkins操作手册_Jenkins

一、jenkins介绍

中文文档:Jenkins中文文档_w3cschool

官网Jenkins

Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。
我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址URL(代码仓库地址),将代码拉取到其“宿主服务器”(Jenkins的安装位置),进行编译、打包和发布到Tomcat容器中。

1丶Jenkins概述

是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建的一些定时执行的任务。Jenkins用Java语言编写,可在Tomcat等流行的容器中运行,也可独立运行。

2丶Jenkins目标

① 持续、自动地构建/测试软件项目。

② 监控软件开放流程,快速问题定位及处理,提高开发效率。

3、Jenkins特性

① 开源的java语言开发持续集成工具,支持CI,CD。
② 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
③ 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
④ 分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
⑤ 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
⑥ 丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

工作流程图:

jenkins roles管理 jenkins操作手册_jenkins roles管理_02

 测试环境中:
1.开发者会将代码上传到版本库中。
2.jenkins通过配置版本库的连接地址,获取到源代码。
3.jenkins获取到源代码之后通过参数化构建(或者触发器)开始编译打包。
4.jenkins通过调用maven(Ant或者Gradle)命令实现编译打包过程。
5.生成的war包通过ssh插件上传到远程tomcat服务器中通过shell脚本自动发布项目。
生产环境:
测试环境将项目测试没问题后,将项目推送到线上正式环境。
1.可以选择手动。
2.也可以通过调用脚本推送过去。 

4、产品发布流程 

产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线

  1. 持续集成(Continuous integration,简称CI)
  2. 持续部署(continuous deployment)
  3. 持续交付(Continuous delivery)

jenkins roles管理 jenkins操作手册_jenkins_03

二、CI/CD是什么?

1丶CI

CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。借用网络图片对CI加以理解。

jenkins roles管理 jenkins操作手册_运维_04

2丶CD

CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。下图反应的是CI/CD 的大概工作模式。

jenkins roles管理 jenkins操作手册_java_05

三丶环境搭建

1丶一台服务器

且服务器安装好了jdk

jenkins roles管理 jenkins操作手册_java_06

2丶简单的SpringBoot项目

并且上传至gitee

jenkins roles管理 jenkins操作手册_运维_07

  多模块可浏览文章SpringBoot多模块打包方式

四丶Jenkins安装

1丶拉取Jenkins镜像

使用docker拉取Jenkins镜像

docker pull jenkins/jenkins:lts

jenkins roles管理 jenkins操作手册_Jenkins_08

2、创建目录

进入data目录,创建jenkins_home文件夹

[root@VM-4-7-centos ~]# cd /data/
[root@VM-4-7-centos ~]# mkdir jenkins_home

3、启动

docker run -di --name=jenkins -p 8080:8080 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts

启动失败

[root@localhost data]# docker logs  d6b5baf89d6b
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

启动失败可能的原因:

1.端口被占用

2.端口为开放

3.权限不够

权限:

在我们启动成功后可能会还是访问不到,这时候可能是因为权限不够,直接去开通一下就好了,当然你的也要是这个路径

开放权限:

chown -R 1000 /data/jenkins_home

再重新启动,等启动工作完毕后

直接访问 ip地址:8080

jenkins roles管理 jenkins操作手册_java_09

 到此步骤Jenkins安装已经完成!

五丶Jenkins配置

1丶查看容器日志

docker logs jenkins

 这样就能得到我们需要的密码

jenkins roles管理 jenkins操作手册_jenkins_10

 

jenkins roles管理 jenkins操作手册_Jenkins_11

2丶进入页面后,选择推荐的插件

jenkins roles管理 jenkins操作手册_jenkins roles管理_12

jenkins roles管理 jenkins操作手册_运维_13

 

 这里可能会出现这个错误,没关系一直点重试就好了,然后就开始下载了,要确保网络通畅哦 耐心等它下载完就好了,时间可能有亿点久

jenkins roles管理 jenkins操作手册_运维_14

注意:有一些会安装失败(我用的服务器,用虚拟机的由于有墙可能访问不到github)不建议使用虚拟机安装!

3丶创建一个管理员

jenkins roles管理 jenkins操作手册_jenkins_15

 这里随便填:记住自己的账号密码即可

jenkins roles管理 jenkins操作手册_Jenkins_16

不用更改,选择默认的配置保存并完成

4丶安装插件

jenkins roles管理 jenkins操作手册_jenkins roles管理_17

 搜索插件 ssh和maven(红色代表与jenkins版本不匹配)

jenkins roles管理 jenkins操作手册_jenkins roles管理_18

 

jenkins roles管理 jenkins操作手册_java_19

 点击这个按钮安装就好,继续耐心等它安装完,放心这次挺快的

 

jenkins roles管理 jenkins操作手册_运维_20

 安装失败重新安装即可!

5丶安装jdk

全局工具配置

jenkins roles管理 jenkins操作手册_jenkins roles管理_21

 点新增JDK,选择版本

jenkins roles管理 jenkins操作手册_Jenkins_22

 

jenkins roles管理 jenkins操作手册_运维_23

 点击去登陆Oracle账号登录,登录了才能下载jdk

jenkins roles管理 jenkins操作手册_Jenkins_24

 输入自己的账号密码

jenkins roles管理 jenkins操作手册_运维_25

 账号为up主提供的:【优极限】最透彻的Jenkins教程,2h打通Jenkins全套教程丨从自动化部署Jenkins从环境配置到项目开发_哔哩哔哩_bilibili

jenkins roles管理 jenkins操作手册_jenkins_26

 先点击应用能弹出已保存就好了,然后在点击保存

jenkins roles管理 jenkins操作手册_jenkins_27

 之后安装maven(如果你的项目不是maven则安装别的插件)

6丶安装maven

jenkins roles管理 jenkins操作手册_jenkins roles管理_28

 点击保存

7丶配置ssh

jenkins roles管理 jenkins操作手册_Jenkins_29

 搜索 ssh

jenkins roles管理 jenkins操作手册_运维_30

 添加ssh的ip和端口 , 点击添加

jenkins roles管理 jenkins操作手册_jenkins_31

 

jenkins roles管理 jenkins操作手册_运维_32

 添加服务器的账号和密码 如果点击添加没反应,没关系我们点击右上角的用户名添加一个就好了

jenkins roles管理 jenkins操作手册_java_33

jenkins roles管理 jenkins操作手册_jenkins_34

 

jenkins roles管理 jenkins操作手册_运维_35

 

jenkins roles管理 jenkins操作手册_运维_36

 检测连接是否成功

jenkins roles管理 jenkins操作手册_Jenkins_37

六丶构建项目

1、新建项目

jenkins roles管理 jenkins操作手册_java_38

2、输入任务名称,选择maven

没有这个项目则下载maven插件(百度即可)

Maven Integration plugin

jenkins roles管理 jenkins操作手册_jenkins_39

3丶设置源码管理

jenkins roles管理 jenkins操作手册_jenkins roles管理_40

 url为自己项目的仓库地址

添加凭证输入自己的gitee账号和密码并选中

4、设置Maven

jenkins roles管理 jenkins操作手册_Jenkins_41

 设置目标

clean package

jenkins roles管理 jenkins操作手册_Jenkins_42

 然后我们先构建下,等待结束

jenkins roles管理 jenkins操作手册_jenkins roles管理_43

 但是maven下载依赖速度太慢,我们可以手动关闭构建,把镜像配置为阿里云镜像

5、修改maven配置

配置文件在你的jenkins数据目录下,例如我的就是:

/data/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.2/conf

按照原先方法修改配置文件,把maven远程仓库地址改成阿里云的。

jenkins roles管理 jenkins操作手册_java_44

<mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
         <mirrorOf>central</mirrorOf>       
       </mirror>

6、重新构建

点击 立即构建

这次下载速度就快了,构建好的jar包目录在:

/data/jenkins_home/workspace/jekins-test/service/target

jekins-test:是任务名称(我创建任务时,少打了个n)

选中查看控制台输出

jenkins roles管理 jenkins操作手册_jenkins_45

根据输出就能看到jar的生成目录 

jenkins roles管理 jenkins操作手册_jenkins roles管理_46

 然后我们在服务器手动启动看看是否正常

cd /data/jenkins_home/workspace/jekins-test/service/target
nohup java -jar JenkinsDemo02-0.0.1-SNAPSHOT.jar &

7丶构建后自动部署

8082是我的springboot服务端口

强制杀死某个端口进程命令,关闭jar包

sudo fuser -k -n tcp 8082

请先把刚才开启的jar包服务关掉

设置构建环境配置,构建后操作(构建前就不用设置,测试过,填了就出现错误)

配置如下:

jenkins roles管理 jenkins操作手册_运维_47

配置说明: 

这是一段构建完成后自动运行的脚步,通过ssh连接远程服务器。

source /etc/profile                     //同步环境变量
sudo fuser -k -n tcp 8082          //强制杀死某个端口进程命令,关闭jar包,自行修改
cd /data/jenkins_home/workspace/JenkinsTest/target            //进入到项目jar包位置,自行修改
nohup java -jar JenkinsDemo02-0.0.1-SNAPSHOT.jar &        //运行jar包,自行修改
sleep 10         //超级大坑,每次服务还没启动就被杀死,休眠10s可以躲过。加不加因人而异。

七丶Git提交后自动构建 

1、配置URL构建触发器

令牌随便输,URL格式就是下面那个英文说明,根据自己的修改

jenkins roles管理 jenkins操作手册_Jenkins_48

2、添加用户token

jenkins roles管理 jenkins操作手册_jenkins roles管理_49

 生成,保存token信息

jenkins roles管理 jenkins操作手册_java_50

详情访问:通过URL触发Jenkins构建

3、配置Gitee的WebHooks 

我这里用的Gitee(学校网进GitHub很不稳定,就选择Gitee了)

Gitee项目里设置URL和秘钥

为了安全自己写个服务用来访问触发Jenkins构建的URL,不直接输入之前的URL

修改url,例如我的,根据自己规则设置

http://用户名:token@ip:端口/job/jekins-test/build?token=设置的token

jenkins roles管理 jenkins操作手册_jenkins_51

 

jenkins roles管理 jenkins操作手册_jenkins roles管理_52

URL格式如下: 

 http://用户名:token@ip:端口/job/jekins_test/build?token=身份验证令牌

用户名:当前jenkins 登录的用户名

token:刚刚随机生成的token

IP:服务器ip

端口:jenkins 端口

身份验证令牌:构建触发器下设置的身份令牌

中间的路径自行去自己那复制 图片已经标注出来了(每个人路径不是一致的)

jenkins roles管理 jenkins操作手册_运维_53

示例: 

http://abcdzzr:119641551fd2f1bd229c2e27e7ec2c78cd@42.xxx.xxx.168:8080/job/JenkinsTest/build?token=abcdzzr

 

 gitee请求成功

jenkins roles管理 jenkins操作手册_运维_54

 八丶测试部署验收成果

1丶提交git

jenkins roles管理 jenkins操作手册_java_55

2丶触发自动构建 

jenkins roles管理 jenkins操作手册_java_56

查看控制台信息 

jenkins roles管理 jenkins操作手册_Jenkins_57

3丶访问项目

服务器IP地址加项目端口号

jenkins roles管理 jenkins操作手册_jenkins_58

 以后我们的项目只要提交gitee就能够自动,构建----->测试----->部署----->运行,是不是非常方便呢!

码字不易,多谢点赞!