Jenkins 构建CI/CD
文章目录
一、CI / CD
1、概念
持续集成/持续发布—开发(git) -->git主库–>jenkins(git+jdk+tomcat+maven打包+测试)–>发布到tomcat服务器
Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件.
2、CI / CD 方法简介
软件开发的连续方法基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性。从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预。
它涉及在每次小迭代中不断构建,测试和部署代码更改,从而减少基于有缺陷或失败的先前版本开发新代码的机会。
这种方法有三种主要方法,每种方法都根据最适合您的策略进行应用。
持续集成(Continuous Integration, CI): 代码合并,构建,部署,测试都在一起,不断地执行这个过程,并对结果反馈。
持续部署(Continuous Deployment, CD): 部署到测试环境、预生产环境/灰度环境、生产环境。
持续交付(Continuous Delivery, CD): 将最终产品发布到生产环境、给用户使用。
二、jenkins介绍
Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。
我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址URL(代码仓库地址),将代码拉取到其“宿主服务器”(Jenkins的安装位置),进行编译、打包和发布到Tomcat容器中。
1、Jenkins概述
是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建的一些定时执行的任务。Jenkins用Java语言编写,可在Tomcat等流行的容器中运行,也可独立运行。
jenkins通常与版本管理工具(SCM)、构建工具结合使用;常用的版本控制工具有SVN、GIT。jenkins构建工具有Maven、Ant、Gradle。
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等。
工作流程图:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HdGri74D-1631340921067)(assets/1569246908031.png)]](https://img-blog.csdnimg.cn/b989b53af6104da382463829b80b6cb5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
测试环境中:
1.开发者会将代码上传到版本库中。
2.jenkins通过配置版本库的连接地址,获取到源代码。
3.jenkins获取到源代码之后通过参数化构建(或者触发器)开始编译打包。
4.jenkins通过调用maven(Ant或者Gradle)命令实现编译打包过程。
5.生成的war包通过ssh插件上传到远程tomcat服务器中通过shell脚本自动发布项目。
生产环境:
测试环境将项目测试没问题后,将项目推送到线上正式环境。
1.可以选择手动。
2.也可以通过调用脚本推送过去。
4、产品发布流程
产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线
持续集成(Continuous integration,简称CI)
持续部署(continuous deployment)
持续交付(Continuous delivery)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-evkmVDE3-1631340921075)(assets/1583060962747.png)]](https://img-blog.csdnimg.cn/b3c5a8d877544aaabbd4c351486c70e8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
三、部署应用Jenkins+Github+Tomcat实战
1、准备环境
两台机器
-
git-server ----https://github.com/bingyue/easy-springmvc-maven
-
jenkins-server —192.168.246.212—最好是3个G以上
-
java-server -----192.168.246.210(tomcat服务器)
部署jenkins服务器
安装git客户端
[root@jenkins-server ~]# yum install -y git #安装git客户端
[root@jenkins-server ~]# ssh-keygen
[root@jenkins-server ~]# ssh-copy-id -i root@192.168.246.210 #拷贝到后端java服务器
开始部署jenkins
1.上传jdk
[root@jenkins-server ~]# tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/local/
[root@jenkins-server ~]# cd /usr/local/
[root@jenkins-server local]# mv jdk1.8.0_191/ java
2.安装tomcat
[root@jenkins-server ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz
[root@jenkins-server ~]# tar xzf apache-tomcat-8.5.42.tar.gz -C /usr/local/
[root@jenkins-server ~]# cd /usr/local/
[root@jenkins-server local]# mv apache-tomcat-8.5.42/ tomcat
3.安装maven
[root@jenkins-server ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
[root@jenkins-server ~]# tar xzf apache-maven-3.5.4-bin.tar.gz -C /usr/local/java
[root@jenkins-server ~]# cd /usr/local/java
[root@jenkins-server java]# mv apache-maven-3.5.4/ maven
4.设置变量
[root@jenkins-server ~]# vim /etc/profile
JAVA_HOME=/usr/local/java
MAVEN_HOME=/usr/local/java/maven
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JAVA_HOME MAVEN_HOME
[root@jenkins-server ~]# source /etc/profile
5.验证
[root@jenkins-server ~]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
[root@jenkins-server ~]# mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/java/maven
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/local/java/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"
6.下载 jenkins 的安装包
安装 jenkins 最新版本 ----通过官网直接下载war包。
官网:http://updates.jenkins-ci.org/download/war/
[root@jenkins-server ~]# wget http://updates.jenkins-ci.org/latest/jenkins.war
部署jenkins
[root@jenkins-server ~]# cd /usr/local/tomcat/webapps/
[root@jenkins-server webapps]# rm -rf *
[root@jenkins-server webapps]# cp /root/jenkins.war .
[root@jenkins-server webapps]# ../bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomca t/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
如果启动了访问提示

解决办法在
[root@jenkins-server ~]# cd /usr/local/tomcat/conf/
[root@jenkins-server conf]# vim context.xml -----添加如下内容:
<Resources
cachingAllowed="true"
cacheMaxSize="100000"
/>
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-seGWqSJo-1631341110963)(assets/1564326085131.png)]](https://img-blog.csdnimg.cn/a97b2c0758e04df1b1862acbf972cf40.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
重启tomcat
2.如果还是不行:
[root@jenkins ~]# cd .jenkins/updates/ 到jenkins的工作目录下
[root@jenkins updates]# vim default.json
把 "connectionCheckUrl":"http://www.google.com/" 改为 "connectionCheckUrl":"http://www.baidu.com/"
3.要是还是不行,出现下面页面:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5NaXU3rV-1631341110969)(assets/image-20210218182941738.png)]](https://img-blog.csdnimg.cn/88d8a399b9644d1c8066c0479e33ad27.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
需要你进入jenkins的工作目录,打开-----hudson.model.UpdateCenter.xml
把http://updates.jenkins-ci.org/update-center.json
改成
http://mirror.xmission.com/jenkins/updates/update-center.json
每次改完记得重启!
使用运行war的形式安装jenkins,因为伟大的墙出现,“该jenkins实例似乎已离线” 问题:
解决办法:
需要你进入jenkins的工作目录,打开-----hudson.model.UpdateCenter.xml将 url 中的 https://updates.jenkins.io/update-center.json 更改为http://updates.jenkins.io/update-center.json,即去掉 https 中的 s 。
或者更改为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
是国内的清华大学的镜像地址。
然后重启tomcat
======================================================================
2、访问界面
需要多等一会
http://192.168.246.212:8080/jenkins
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wbCIld28-1631341110971)(assets/1564325564350.png)]](https://img-blog.csdnimg.cn/0fbd337f58584ef0989f17127996b8a4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
[root@jenkins-server ~]# cat /opt/jenkins/secrets/initialAdminPassword
b36b8b04c5b84e659701304dfe848999 ---复制这个密码粘贴到上面提示的空格里面。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NCsplNmf-1631341110972)(assets/1564325665439.png)]](https://img-blog.csdnimg.cn/377c5bdc63d7497fb3d7fe86b3977752.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
下面需要很长很长一段时间,耐心等候即可。。。。下去抽根烟
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qG4dJrEL-1631341110975)(assets/1564333022739.png)]](https://img-blog.csdnimg.cn/e858da948fd64695b9cbe3e4bb5f1a10.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6kBLqJ6t-1631341110976)(assets/1564333246959.png)]](https://img-blog.csdnimg.cn/2e063f9e3625469ab53d70ac47c8f380.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
我的密码设置的为123456
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eeyuEykq-1631341110979)(assets/1564333308573.png)]](https://img-blog.csdnimg.cn/f5fbce33e27d41d0b78f8e83561c6a3f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2EAV1ClC-1631341110980)(assets/1564333339797.png)]](https://img-blog.csdnimg.cn/954c6e8207ea42b68558bbca8809f61a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
如果注销用户,再次登录失败,例如下图
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VyudBO5Y-1631341110982)(assets/image-20201019145230298.png)]](https://img-blog.csdnimg.cn/49fad2bdb4134cbba8a40b0c38db2857.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
可通过查看管理员密码文件,进行登录
[root@jenkins-server ~]# cat /root/.jenkins/secrets/initialAdminPassword
f0af29c6ee90435b924091db654b6d81
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0RYLoXpW-1631341110983)(assets/image-20201019145430860.png)]](https://img-blog.csdnimg.cn/0eac72f9455a4bdc9074d3856b23f78c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
3、安装插件
需要安装插件如下:
- Deploy to container —支持自动化代码部署到tomcat容器
- GIT pligin 可能已经安装
- Maven Integration :jenkins利用Maven编译,打包所需插件
- Publish Over SSH :通过ssh连接
- ssh 插件
安装过程:
系统管理—>插件管理---->可选插件—>过滤Deploy to container---->勾选—>直接安装
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A5F83xIv-1631341110985)(assets/1564333462537.png)]](https://img-blog.csdnimg.cn/f3d67938b49e4ed486c41d088981e139.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0YjHWXOV-1631341110988)(assets/1564333548629.png)]](https://img-blog.csdnimg.cn/6b4a3f789dbe496397a4f42b9bfb5c87.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)

输入插件名后按回车!
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WTcMycZH-1631341110989)(assets/1564333661844.png)]](https://img-blog.csdnimg.cn/e5dd8e67e0d94d78a28b954985ef7c5d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nhj5Cvix-1631341110991)(assets/1564333727435.png)]](https://img-blog.csdnimg.cn/ee372b7a207343d7a07dd55085e3c114.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xEx9LQlz-1631341110993)(assets/1564333796321.png)]](https://img-blog.csdnimg.cn/57ccdaca85814ce5b4f9037a27e71921.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eXxOvXfP-1631341110994)(assets/1564333846376.png)]](https://img-blog.csdnimg.cn/f2695965f5764ec78cf4d4b36bc43f7d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JhuB5hQf-1631341110995)(assets/1564333976950.png)]](https://img-blog.csdnimg.cn/bdeb55dcbd8e4fc9a1ab61434b9a034d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
以上所有插件安装完成
4、邮箱(可选)
Jenkins 系统管理员邮件地址是Jenkins发送邮件通知时的发件人。
使用管理员帐号登录Jenkins,打开系统管理-系统配置:

找到Jenkins Location栏,在系统管理员邮件地址框中输入系统管理员的邮箱(这里计划使用QQ邮箱作为Jenkins的邮件服务,所以填写了自己的QQ邮箱地址):

继续向下找到**邮件通知(E-mail Notification)**栏,点击高级,展开高级配置,填写对应的邮件服务器信息,并发送测试邮件,检验配置是否正确。

指定的收件人收到Jenkins发送的测试邮件:

5、配置Jenkins私钥
key:指的是 jenkins 服务器用哪个用户去远程连接程序服务器就是那个用户的私钥。
[root@jenkins-server .ssh]# cd /root/.ssh/
[root@jenkins-server .ssh]# cat id_rsa
- 1
- 2
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mOVxs12X-1631335306704)(assets/image-20210902223413244.png)]](https://img-blog.csdnimg.cn/ea9c8eb06540433d8180361e94fd8c5b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
6、添加后端服务器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rqchiOJM-1631337526903)(assets/image-20210902223816852.png)]](https://img-blog.csdnimg.cn/c7ad00f25a4d4ac892296d591e558117.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
密钥配置
[root@jenkins ~]# ssh-keygen
[root@jenkins ~]# ssh-copy-id -i root@192.168.246.210
- 1
- 2
- 3
7、配置JDK和Maven(全局配置)







8、构建发布任务
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wJhKrD7C-1631341111025)(assets/1564335261703.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xumyQVoR-1631341111026)(assets/1564335284215.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eOqdGA5x-1631341111028)(assets/1564335352695.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cwo736NL-1631341111029)(assets/1564341315628.png)]
https://github.com/bingyue/easy-springmvc-maven
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F8oTsXAY-1631341111031)(assets/1564335657071.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Li0GrLbR-1631341111031)(assets/1564335823407.png)]
9、调用maven命令和启用邮箱



10、部署java服务器
部署java服务器,做jenkins打包上线
[root@java-server ~]# mkdir -p /data/application
1.上传jdk
[root@java-server ~]# tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/local/
[root@java-server ~]# cd /usr/local/
[root@java-server local]# mv jdk1.8.0_191/ java
2.下载tomcat
[root@java-server ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz
[root@java-server ~]# tar xzf apache-tomcat-8.5.42.tar.gz -C /data/application/
[root@java-server ~]# cd /data/application/
[root@java-server application]# mv apache-tomcat-8.5.42/ tomcat
3.设置环境变量
[root@java-server ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/data/application/tomcat
[root@java-server ~]# source /etc/profile
4.测试:
[root@java-server ~]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
5.删除tomcat默认发布目录下面的内容:
[root@java-server ~]# rm -rf /data/application/tomcat/webapps/*
[root@java-server ~]# cd /data/application/tomcat/webapps/
[root@java-server webapps]# ls
6.创建目录和脚本:
[root@java-server ~]# mkdir /opt/script #创建脚本目录
[root@java-server ~]# vim app-jenkins.sh #创建脚本
7.脚本内容在后面:
[root@java-server ~]# chmod +x app-jenkins.sh #添加执行权限
[root@java-server ~]# mv app-jenkins.sh /opt/script/
8.脚本内容:
[root@java-server script]# cat app-jenkins.sh
#!/usr/bin/bash
#本脚本适用于jenkins持续集成,实现备份war包到代码更新上线!使用时请注意全局变量。
#================
#Defining variables
export JAVA_HOME=/usr/local/java
webapp_path="/data/application/tomcat/webapps"
tomcat_run="/data/application/tomcat/bin"
updata_path="/data/update/`date +%F-%T`"
backup_path="/data/backup/`date +%F-%T`"
tomcat_pid=`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`
files_dir="easy-springmvc-maven"
files="easy-springmvc-maven.war"
job_path="/root/upload"
#Preparation environment
echo "Creating related directory"
mkdir -p $updata_path
mkdir -p $backup_path
echo "Move the uploaded war package to the update directory"
mv $job_path/$files $updata_path
echo "========================================================="
cd /opt
echo "Backing up java project"
if [ -f $webapp_path/$files ];then
tar czf $backup_path/`date +%F-%H`.tar.gz $webapp_path
if [ $? -ne 0 ];then
echo "打包失败,自动退出"
exit 1
else
echo "Checking if tomcat is started"
if [ -n "$tomcat_pid" ];then
kill -9 $tomcat_pid
if [ $? -ne 0 ];then
echo "tomcat关闭失败,将会自动退出"
exit 2
fi
fi
cd $webapp_path
rm -rf $files && rm -rf $files_dir
cp $updata_path/$files $webapp_path
cd /opt
$tomcat_run/startup.sh
sleep 5
echo "显示tomcat的pid"
echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
echo "tomcat startup"
echo "请手动查看tomcat日志。脚本将会自动退出"
fi
else
echo "Checking if tomcat is started"
if [ -n "$tomcat_pid" ];then
kill -9 $tomcat_pid
if [ $? -ne 0 ];then
echo "tomcat关闭失败,将会自动退出"
exit 2
fi
fi
cp $updata_path/$files $webapp_path
$tomcat_run/startup.sh
sleep 5
echo "显示tomcat的pid"
echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
echo "tomcat startup"
echo "请手动查看tomcat日志。脚本将会自动退出"
fi
11、构建项目
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F5mGXN5q-1631341111038)(assets/1564336717415.png)]](https://img-blog.csdnimg.cn/84a73f416b99430d98fc83f62191b2af.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3N011UbG-1631341111039)(assets/1564336734472.png)]](https://img-blog.csdnimg.cn/b5d3ad8442664bc383c80afd22a49d60.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0xv0htJK-1631341111040)(assets/1564336761194.png)]](https://img-blog.csdnimg.cn/14d9adfe2e224b228568f573ac1f0559.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nBcjPhcG-1631341111042)(assets/1564341387433.png)]](https://img-blog.csdnimg.cn/76ab6e25cbfe49b8b22ecf1f5b666ce0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8RFZPkY8-1631341111042)(assets/1571056070912.png)]](https://img-blog.csdnimg.cn/a76f2fda0bdd4359afc692f062af4f51.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
12、查看测试结果
(1)登陆java-server服务器查看
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T6Ha1LjY-1631341111044)(assets/1564341789289.png)]](https://img-blog.csdnimg.cn/c8809e7c6a7f4c6197f8838a5d640039.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oDRxjXmX-1631341111045)(assets/1564341820575.png)]](https://img-blog.csdnimg.cn/403dc6bd5add47a3807b6cc9adf291eb.png)
(2)查看邮箱,可看到消息
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uV3hQitP-1631341111046)(assets/1583236173518.png)]](https://img-blog.csdnimg.cn/4b0945dea5744c3ea240f79104f66812.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-18Kpyhtg-1631341111048)(assets/1583236298592.png)]](https://img-blog.csdnimg.cn/ad8cde32fdfc4b1dbfb5e244d8157ef8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
四、Jenkins+Gitlab 部署第一个小项目
1、前提
Jenkins服务器去拉取代码。所以要下载git客户端
[root@jenkins-server ~]# yum -y install git
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zIhaNXmG-1631341111049)(assets/1583067401297.png)]](https://img-blog.csdnimg.cn/4f5a865e83d744459b011db0669efc79.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
2、新建任务
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0XCiuooe-1631341111050)(assets/1583067657276.png)]](https://img-blog.csdnimg.cn/b4604c0d1e094a3c92f30747a407c113.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_17,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L7nF4p6b-1631341111051)(assets/1583067754415.png)]](https://img-blog.csdnimg.cn/22dfab805d154a398b1dbd32009bd47d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fIEyliGI-1631341111052)(assets/1583067793428.png)]](https://img-blog.csdnimg.cn/537e8ed0a96f4bbe83cf3a1accf61d1c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
3、配置gitlab的地址
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2UOM33RF-1631341111054)(assets/1583067975394.png)]](https://img-blog.csdnimg.cn/d9d6f272dafb41d1a5d5350cba046a40.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uo6YxEps-1631341111055)(assets/1583068007505.png)]](https://img-blog.csdnimg.cn/890677f16d354262b2f2f019bce6dab0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U5T5yb9d-1631341111055)(assets/1583068086468.png)]](https://img-blog.csdnimg.cn/0e74d9fdfe35492bbcd2e95f2932db38.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CYweKoOd-1631341111056)(assets/1583068144311.png)]](https://img-blog.csdnimg.cn/bee2abdde65a4f0eb81d63ceab040950.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tJHrUnFv-1631341111057)(assets/1583068196797.png)]](https://img-blog.csdnimg.cn/637e6d58392c4ad9a84d2d7be9fe6f1a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
查看Jenkins服务器的私钥 cat /root/.ssh/id_rsa
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Bd3nstu-1631341111060)(assets/1583068314971.png)]](https://img-blog.csdnimg.cn/03982809888248b593212546f94f5eda.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dorlsSr7-1631341111061)(assets/1583068382540.png)]](https://img-blog.csdnimg.cn/3802206c012d4a939de9ac134605a714.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YVnskYIE-1631341111062)(assets/1585279946364.png)]](https://img-blog.csdnimg.cn/1761f824c00f4b6dbcb81c4da7a20569.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AQ53rAOd-1631341111063)(assets/1585280142108.png)]](https://img-blog.csdnimg.cn/e3d1a2263e75400caaee21760f43446d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
4、gitlab端配置公钥
Jenkins端配置好之后,还应在gitlab端配置Jenkins服务器的公钥
在jenkins服务器上查看公钥,复制粘贴到gitlab
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oNca6m5w-1631341111063)(assets/1585221510597.png)]](https://img-blog.csdnimg.cn/5eab469bec964040a48cdda214c28aa1.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-99xVbzVs-1631341111064)(assets/1585221543706.png)]](https://img-blog.csdnimg.cn/2f18550543ef482295b535a2ef876941.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
然后去构建项目。自动拉取代码
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pzby9Gje-1631341111065)(assets/1583068437105.png)]](https://img-blog.csdnimg.cn/4a16977954e743d18b5eccd7b91f5a05.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
注意看拉取到了哪个目录下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-42XnO6Jp-1631341111066)(assets/1583067427222.png)]](https://img-blog.csdnimg.cn/b817c4358a374b58bc3a67b8f5b47d9d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
在Jenkins服务器上认证
在这个目录下能找到自己拉取git的项目;证明项目成功完成
[root@jenkins ~]# ls /root/.jenkins/workspace/demo
beifen.sh
五、Jenkins+Gitlab webhook触发自动构建项目
效果:只要Gitlab仓库代码更新,Jenkins自动拉取代码,完成构建任务。无需手动点击“立即构建”
需求场景:
1、项目代码的更新迭代较多,每次点击比较麻烦
2、更新的可能不是代码,可能是一些资源(比如:静态文件等) ### 安装配置Gitlab
Gitlab平台root用户密码配置为12345678
1、准备环境
(1)创建组



(2)创建项目
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HbtxnnB2-1631343820154)(assets/image-20210404222934618.png)]](https://img-blog.csdnimg.cn/43a1a7d7f6d64433a48ca314596d771a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kDIb2RKm-1631343820156)(assets/image-20210404223032550.png)]](https://img-blog.csdnimg.cn/20ff7e14564b44c9a9c2da53f79612b9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
在项目中随便新建个文件,当作代码文件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RcpifKqT-1631343820160)(assets/image-20210404223239413.png)]](https://img-blog.csdnimg.cn/aef3b14437134076b57790e13c048260.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
2、安装配置Jenkins
安装过程略
1.安装jdk
2.安装Tomcat
3.安装Maven(可选,不确定是否编译)
4.配置环境变量
5.启动
要记录下上边的URL和认证密钥,切换到gitlab,找到对应的git库点击setting --> webhook ,填写以下内容
-
地址:http://192.168.153.149:8080/jenkins/project/webhook
-
Secret token:68ed645e3f6f51103fb32189d804498b
(1)配置jdk和maven
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7UyzrfeZ-1631343820162)(assets/image-20210404223509638.png)]](https://img-blog.csdnimg.cn/4672a42311874d9999363b4b7965a530.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4fDphmgi-1631343820163)(assets/image-20210404223559996.png)]](https://img-blog.csdnimg.cn/a22d3c446dbf43d7986125d3886be084.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
(2)jenkins安装gitlab插件

2.3版本hook对应的而插件是这两个
2.2版本对应的插件
(3)新建任务


Jenkins具体配置

来到Gitlab的test1项目中,复制拉取地址

粘贴到

出现一堆报红,正常!因为需要配置私钥和公钥。
需要把Jenkins服务器的私钥,配置到test1项目中。把Jenkins服务器的公钥,配置到GItlab的服务里面。
这样拉取就可以免密了!

这里也可以用root账户,配 root 的私钥
[root@jenkins-server ~]# useradd jenkins
[root@jenkins-server ~]# su - jenkins
[jenkins@jenkins-server ~]$ ssh-keygen
[jenkins@jenkins-server ~]$ cat .ssh/id_rsa #查看jenkins用户的私钥


在构建选择webhook ,并需选择高级选择项,记录下URL

生成一个Token


至此,jenkins配置暂时完成。
3、配置gitlab
在Gitlab中需则要自动构建的仓库,进行钩子配置,填入Jenkins生成hooks的 URL 和 Token

添加完成之后报错
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gNrizlZD-1631345971417)(assets/image-20210404230156342.png)]](https://img-blog.csdnimg.cn/a5115fb0976e46d1bcd34b8c68fa24a8.png)
这是因为gitlab 10.6 版本以后为了安全,不允许向本地网络发送webhook请求,设置如下:
登录管理员账号
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qG2uMhdT-1631345971420)(assets/image-20210404230225325.png)]](https://img-blog.csdnimg.cn/482b7a5d21924390b3e6fb13df6364f9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_19,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0pUY5OtX-1631345971422)(assets/image-20210404230246406.png)]](https://img-blog.csdnimg.cn/fd06dc74f3884216969940271aa4262f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_18,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tyUlHd6m-1631345971426)(assets/image-20210404230320223.png)]](https://img-blog.csdnimg.cn/a0024e1d099e4eaf9d5d7499c85e50ab.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
然后需要再次添加webhook,就会成功了。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HeGUxyfH-1631345971428)(assets/image-20210404230409785.png)]](https://img-blog.csdnimg.cn/3ff877c04f854f7981f11f06b02fafeb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
成功了,才会显示出来
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fl9Neoyu-1631345971429)(assets/image-20210404230418132.png)]](https://img-blog.csdnimg.cn/4c1f4f493a2943be8c7780b76d1bb167.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
注意:Jenkins需要配置git用户名 和 邮箱地址
[root@jenkins-server ~]# su - jenkins
[jenkins@jenkins-server ~]$ git config --global user.email "soho@163.com"
[jenkins@jenkins-server ~]$ git config --global user.name "soho"
4、开始测试
在任何一台测试都可以。我这里在gitlab机器上面测试:
[root@gitlab-server ~]# yum -y install git
[root@gitlab-server ~]# git config --global user.email "fei@163.com"
[root@gitlab-server ~]# git config --global user.name "fei"
[root@gitlab-server ~]# ssh-keygen #生成秘钥
[root@gitlab-server ~]# cat .ssh/id_rsa.pub #查看生成的公钥添加到gitlab里面去
- 1
- 2
- 3
- 4
- 5
- 6
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m4lrtI4C-1631345971432)(assets/image-20210404230641003.png)]](https://img-blog.csdnimg.cn/f59d416eaadb46fbbb55ee45f6f36ed8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)
先克隆一下仓库
[root@gitlab-server ~]# git clone git@192.168.153.157:root/test1.git
Cloning into 'test1'... remote: Enumerating objects: 6, done. remote: Counting objects: 100% (6/6), done. remote: Compressing objects: 100% (4/4), done. remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (6/6), done.
[root@gitlab-server ~]# ls
anaconda-ks.cfg test1 upload
[root@gitlab-server ~]# cd test1/
[root@gitlab-server test1]# ls README.md 创建文件模拟代码提交到仓库
[root@gitlab-server test1]# touch a.txt
[root@gitlab-server test1]# git add . #把文件添加到暂存区
[root@gitlab-server test1]# git commit -m 'test'
[master 2451295] test 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 a.txt
将新代码,推动至Gitlab仓库,立刻去Jenkins查看。是否有新项目构建
[root@gitlab-server test1]# git push origin master #上传到中心仓库master分支 Counting objects: 4, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 296 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@192.168.153.156:root/test1.git f3848d7..2451295 master -> master
返回到jenkins页面查看是否自动发布
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ak6QW1W1-1631345971434)(assets/image-20210404230742616.png)]](https://img-blog.csdnimg.cn/1a7444e5708040ecb3f11d75f1bc94f0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZK46JuL6buE5rS-,size_20,color_FFFFFF,t_70,g_se,x_16)

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ogJraIxK-1631345971436)(assets/image-20210404231026534.png)]](https://img-blog.csdnimg.cn/c86f760ef4004f25aa2a6df435e60015.png)



浙公网安备 33010602011771号