千家信息网

Jenkins+Gitlab实现持续集成

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,一、Jenkins及持续集成1)什么是Jenkins?Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins是基于Java开发的一种持续集成工具,用
千家信息网最后更新 2025年12月02日Jenkins+Gitlab实现持续集成

一、Jenkins及持续集成

1)什么是Jenkins?

Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
1)持续的软件版本发布/测试项目;
2)监控外部调用执行的工作;

对Jenkins有兴趣的朋友可以参考Jenkins中文文档

2)什么是持续集成?

1)什么是集成?

指的是代码由编译、发布、测试、上线的一个过程!

2)什么是持续集成?

高效的、持续性质的不断迭代代码的集成工作!

3)如何高效准确的实现持续集成?

必不可少的需要一套能自动化、并且可视化的平台来帮助我们!

二、为什么Jenkins能帮助我们进行持续集成?

1)Jenkins是一个开源的、且基于JAVA代码开发的持续集成系统

因为含有非常丰富的插件支持,所以我们可以方便的打通版本库、测试构建环境、线上环境的所有环节。并且丰富友好的通知使用者和开发、管理人员。

2)安装维护简单

安装Jenkins,不太复杂。而且支持通用的平台。

3)Java应用常用

在企业的软件构建过程中,JAVA的应用工程稍显复杂,由于复杂构建和代码上线、并且服务的重启。整个过程下来,消耗的时间较多,Jenkins却能很好的集成maven的编译方式,而且利用自动化的插件和自定义开发脚本的支持。所以目前广泛的应用于JAVA工程的持续集成平台。

接下来使用的大多数软件包都是从清华大学开源镜像站中下载!

三、部署安装Gitlab

1)安装gitlab

[root@jenkins ~]# yum -y install  epel-release curl openssh-server openssh-clients postfix cronie policycoreutils-python#安装所需依赖[root@jenkins ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm#获取gitlabRPM包[root@jenkins ~]# rpm -ivh gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm#安装gitlab软件包[root@jenkins ~]# vim /etc/gitlab/gitlab.rb external_url 'http://192.168.1.10'#修改为本机的IP地址,便于访问[root@jenkins ~]# gitlab-ctl reconfigure#重新配置gitlab,就算不修改配置文件,也需要在安装后重新配置gitlab[root@jenkins ~]# netstat -anpt | grep -w 80   #确定其80端口在监听

2)配置gitlab

如图:

3)生成密钥对,便于ssh登录

[root@jenkins ~]# ssh-keygen -t rsa -C "1454295320@qq.com"      #生成秘钥对[root@jenkins ~]# cat ~/.ssh/id_rsa.pub          #查看公钥并复制ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDuyAYPbmf92Pi6OOfcbdi7BCxN+Fq1c5lc4YAQhM8420mwfT4WltUOSXUidxR2oT3ViXSxwzlOr+XoHJ4YJEeQ3jIeXr5aSwtU5YTNgvVA+SYk0uvPLJg11NdEuMkSIB2K8PJ9zSxvppKbAkynmLEyZ1n61j5NbbApjgMslUqdB10vWowSE/Xoo11ugooQH2y3GxVrSv/EMeaVkToMVFM7BWx0pLBLi+tMJpb6Aj0pOSyv5rBj0hA1+2qrPQ3DtJc4QGMK+FRyxw/N13slfmoLzZ+6bF9oyNQZNWa9isL5C80srZhF7JkCrscYMIo0hOCkYOLVGJDFSgxiceG9ZmYh 1454295320@qq.com

接下来需在web页面进行操作。如图:

4)创建一个库

如图:



5)本地服务器进行测试

[root@jenkins ~]# git clone git@192.168.1.10:root/test01.git#执行克隆操作,第一次根据提示输入yes即可![root@jenkins ~]# cd test01/[root@jenkins test01]# lsREADME.md#进入克隆的库,查看是否与web页面创建的库的内容一致[root@jenkins test01]# git config --global user.name admin[root@jenkins test01]# git config --global user.email admin@admin.com#自报家门,进行简单的声明用户名及邮箱地址[root@jenkins test01]# echo "hello world" > 123.txt[root@jenkins test01]# git add 123.txt [root@jenkins test01]# git commit -m "commit form local first"#创建文件进行测试[root@jenkins test01]# git push origin master#将本地的测试文件推送到远端(gitlab)

6)gitlab验证

刷新页面之后,如图:

gitlab的配置到此先告一段落,接下来安装Jenkins!

四、部署安装Jenkins

1)安装Jenkins

[root@jenkins ~]# wget https://mirrors-i.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.172-1.1.noarch.rpm#获取Jenkins软件包[root@jenkins ~]# rpm -ivh jenkins-2.172-1.1.noarch.rpm #安装Jenkins[root@jenkins ~]# rpm -ql jenkins               #查看与Jenkins相关的文件存放的位置[root@jenkins ~]# sed -i 's/JENKINS_PORT="8080"/JENKINS_PORT="8081"/g' /etc/sysconfig/jenkins#由于gitlab的组件已经占用了8080端口,所以需要更改监听的端口[root@jenkins ~]# /etc/init.d/jenkins start               # 启动Jenkins服务[root@jenkins ~]# ss -lnt | grep 8081                 #确定端口在监听LISTEN     0      50          :::8081                    :::*  

2)Jenkins web页面的配置

如图:

[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPasswordc6e0fcde793648e9b4bad088e8896897#查看密码信息,并将其复制




由于下载其插件时间较长,所以采用另一种方法:
等安装完成一个插件后,将网络断开!下载所需软件

[root@jenkins ~]#  tar zxf jenkins-plugins.tar.gz -C /var/lib/jenkins/[root@jenkins ~]# /etc/init.d/jenkins restart

再次访问web页面,如图:






已经可以看到Jenkins的工作页面!

3)配置Jenkins拉取Gitlab的仓库代码

如图:



因为采用的SSH的方式来获取代码,所以需要密钥对。在gitlab上已经存放了公钥,上图中红字报错的信息就是找不到私钥,所以接下来需要手动添加私钥!

[root@jenkins ~]# cat ~/.ssh/id_rsa            #查看私钥,并复制全部内容-----BEGIN RSA PRIVATE KEY-----MIIEpAIBAAKCAQEA3uXh+36ATD8j2CQGovVpPUvIF6kFf2ei6YseQjQ6wcnpou9NxjhWmzJ2LKinnfS0SJ9QsuM1b7i0EJal8VyOql2H1aeQ93y/awVavN5Z5+68zgKv/PdDRDK9EDd5ANWP9YiTpeoXPL6aupF4BsAKpmYtQrY1ApEeDMc9KMI7cT33+MW7GdSRYPxHMH0NRtamEbRasJhBQbUlrDb3HpAUz0Xax9CTQzIBxLeRE/Fpq2+pG2iDc+LzLYEGSswX/u2QPE3uRkZFM7mit3NS/PRslzF1RuYMWNoYo9pnSCOOkWCM+QxxNvIMGIkbEs5RnU/m5Y9CaycD2x6RKNcO84nYPQIDAQABAoIBAQCC893zalun8AR4DJpVjQbaOzaAKA4RzupYeSI61QKcLar0zdEMnrbLETd6f0+SrlxouiioIHKZg5NOl6NAjRdIIhEWxg6WSBURpCCuC5gYehs0kUGhxgcf/wsyhtSxV8bvAuFzvXcPeg/fgm1Y0eSv5CG9Kt0z99wGt9tHoe1YVm4mvvxwIDs359C3bt9SwT57xBSkC5THExdxXfdtn3jGiHgQpEf/D3JS1MK+nK6B5kULKTXQUeUm2BWzKodCu38jEnoZA2ARhiZaONKf7qgl6mV+5jT2iKd8Ams4F3NwOp9muCGjc1XXcO8JSnAZ1/P7QVVGv1FrHbNZr9F6dSKhAoGBAPOua5XjR8bfsRyCL5ftTwGva7ND3YuhLLK72FFiIelVuoC9e6ajkqiC/vHnjMG/KOVG9WDDT5HE8CdaRUj5l79u+EdeQRbWn40NxhlQTNS+69x8XCYBzo5CFP5gd4KP1FHJig+Sujc2L2LQIiDaXhbtBMWHfMbP1Dm/9tQIO1xFAoGBAOoqfyUXuLX/x+GimMIPTh8Z8okeVo8t3jxE6d5hVCZ5jlb3xcVM0KCTr/sqB689TPLhfIYZfVRwNeJ2NpFWf8b8EK0FHnkEdwC8iBX/mNNXZou0TOCws1LfgE6UL1MXQXzLQuVe9RayIMM/3RjALaV6DuHsqCtolFHlLLlPx5eZAoGADnPm36H2TN5Rk95I0lr516C+44f/6NsrWoJ3pwQJ/NvfzujuH4kOFr6GPnS8TXV4CHk37oBHBN9IWx0ohNaA4JLFWP5HIAKkven2OOQhWnDkblRV5s8uoBNdSWURUYYUUrGAZcIPF104XET58TbiY7u1D74kcWo8LRysmBDQ7H0CgYBliPHCoquL9xGzi65TDxHfuH+K5yW/RbNETNlffLJhUHngyeTubSVVS1SWQp48ZQc1lYJKH0lR0Kn8vSdiE7CqFmggrcSN0trK7fTQHRkmIpKrZw2iq9vFxnW7HNP8YmwZ8YTbMjZxleFQ6CM1dTcVtnw3iEdPMzSE4itnWul/mQKBgQDa07lHrrHPvcNQl9xuLEoDjoMkde8QxUd7DtLgnE4UW6Uz/A4Y19ifWkP3yimnjFKUuwaQCsFl/mnqxsSy62onaqdiEMIw/00ouWbi9v11Nl0ulLzSylkMQNdraUsH3BkW2fNNSKWDLAyFAr4uL5xo30SUE0oX/v6MNdaTXmZrNg==-----END RSA PRIVATE KEY-----





服务器端检测同步的数据:

[root@jenkins ~]# ls /var/lib/jenkins/workspace/web01123.txt  README.md[root@jenkins ~]# cat /var/lib/jenkins/workspace/web01/123.txt hello world

五、配置Jenkins+gitlab实现持续自动集成

在进行以下配置,为了快速、方便,推荐下载本人提供的插件

配置如图:



依次上传我提供的包,顺序如下:gitlab-oauth-->gitlab-plugin --> windows-slaves -->ruby-runtime -->gitlab-hook即可!

如果想要在线安装插件,可以更改其插件来源为清华大学的Jenkins镜像站的URL,这里附加一个更改的方法的链接,自行更改即可!
修改内容如下:

修改插件地址到此为止!

由于接下来大部分就是鼠标点点就可以了,这里只附加关键的图!
依次点击:系统管理-->全局安全配置-->授权策略

依次点击:系统管理-->系统设置

上述操作完成后,进行以下操作:


在终端生成令牌并复制:

[root@jenkins ~]# openssl rand -hex 10               #复制以下内容a13d2c8d22991c70a9e5

回到Gitlab的web页面,进行如下操作:




接下来需要去Jenkins页面找到所需的URL!如下:



我们需要对Jenkins的URL进行拼接大概是:Jenkins的访问地址+/job....=身份验证令牌码拼接后的内容:http://192.168.1.10:8081/job/web01/build?token=a13d2c8d22991c70a9e5

然后对到gitlab的页面,输入Jenkins的URL,如图:

添加完成后,下拉页面,进行以下操作:


至此,持续部署便安装完成了,接下来就是测试了,在终端上提交代码到gitlab上,查看Jenkins有没有自动同步,如下:

#向gitlab推送新的代码[root@jenkins ~]# cd test01/[root@jenkins test01]# echo "123456" > test.txt[root@jenkins test01]# git add test.txt [root@jenkins test01]# git commit -m "commit form local second"[root@jenkins test01]# git push origin master

Jenkins可以看到以下内容,即可说明持续部署配置完成了!



根据控制台输出的信息可以看出,代码已经同步成功了,那么在本地查看一下!

[root@jenkins ~]# cat /var/lib/jenkins/workspace/web01/test.txt 123456#与我们刚才提交的文件一样

-------- 本文至此结束,感谢阅读 --------

配置 页面 代码 软件 如图 插件 接下来 测试 内容 文件 地址 平台 端口 系统 工作 开发 服务 复杂 信息 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 青浦区软件开发服务保障 重庆系统软件开发服务 魅族e网络安全更新中取消 抖音软件开发商靠什么赚钱 查看数据库多线程 皇族网络技术的群号 软件开发的工程 计算机网络技术的未来规划 斑马打印机数据库字段长度 我的世界服务器管理员跑道 成电的网络安全研究生专业目录 vnc连接服务器时报错超时 qq代理服务器聊天安全吗 数据分析和网络技术有限公司 网络安全的威胁主要是 数据库技术先修课程 密切警校协作共筑网络安全防线 电脑怎样重启服务器 直销软件开发选直销大师 联银金盛互联网科技 若合兰网络技术服务中心 为什么手机连不上服务器 黑客与网络安全读后感 有问题的脚本服务器运行会怎么样 修改数据库实例用户的主目录 索引属于数据库物理 vc读取数据库连接 慈星互联网科技有限公司 国外网络技术限制 这个数据库有医生数据表doc
0