首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >部署Jenkins+Gitlab实现持续集成

部署Jenkins+Gitlab实现持续集成

作者头像
小手冰凉
发布2020-03-19 22:04:09
8550
发布2020-03-19 22:04:09
举报
文章被收录于专栏:小手冰凉小手冰凉

Jenkins介绍

Jenkins 只是一个平台,真正运作的都是插件。这就是 jenkins 流行的原因,因为 jenkins 什么插件都有Hudson 是 Jenkins 的前身,是基于 Java 开发的一种持续集成工具,用于监控程序重复的工作,Hudson 后来被收购,成为商业版。后来创始人又写了一个 jenkins,jenkins 在功能上远远超过hudson。

1、什么是集成?

指的是代码由编译、发布和测试、直到上线的一个过程。

2、什么是持续集成?

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

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

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

根据以上几点来看,Jenkins就是一个可以实现持续集成的平台。

4、为什么是Jenkins来帮助我们实现持续集成?

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

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

2)安装维护简单

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

3)Java应用常用

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

接下来用到的所有软件包大多数是从清华开源镜像站下载。

一、部署安装gitlab

1、安装gitlab,并登录到web界面创建库,测试可以上传下载即可

可参考之前写的一篇博文持续集成之Gitlab安装与应用来安装部署gitlab,根据博文进行到刷新web界面的库页面,能够看到test测试文件上传成功即可

二、部署安装Jenkins

1、安装Jenkins

[root@jenkins ~]# wget https://mirrors-i.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.172-1.1.noarch.rpm
[root@jenkins ~]# rpm -ivh jenkins-2.172-1.1.noarch.rpm 
[root@jenkins ~]# rpm -ql jenkins                 #查看其相应文件的存放路径
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins
[root@jenkins ~]# sed -i 's/JENKINS_PORT="8080"/JENKINS_PORT="8081"/g' /etc/sysconfig/jenkins                # 修改其监听端口
[root@jenkins ~]# /etc/init.d/jenkins start             # 启动jenkins
[root@jenkins ~]# netstat -anput | grep 8081            # 确定端口在监听
tcp6       0      0 :::8081                 :::*                    LISTEN      49094/java  

2、配置Jenkins的web界面

客户端访问Jenkins服务器的监听端口8081,然后根据提示复制其管理员密码。如下:

[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword 
86d28c93461d43f9a06f5822f61fd871

接下来可以安装一些基础插件,点击它的推荐安装即可,如下(我直接上传我这里的包到指定目录,就可以跳过这个步骤了,可以下载我的包(提取码:357v),进行和我一样的操作):

我没有安装它的推荐插件,我选择以下的方式安装:

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

注意:若使用我这种方式安装,那么再次访问时需要断开外网。

经过上述配置,即可看到Jenkins的工作页面,如下:

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

[root@jenkins ~]# cat ~/.ssh/id_rsa                   #复制查看到的所有内容,包括开头和结尾的“---”行
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAt7+/JKecuR1UbXsRxwD7H5Ndxjm3yH4sSWj9CFLAangDb4LU
jRFy9jRGHT6g0FbfHHlL/PE41NyV/W1aFdZLDCMN3M5NC8+I3JB+38uslPyDKJWC
Xt0CWKZyo+FRTXo3baYllL8QMlhSoDCGqLHz52AQzM2/+eGemQP4Kvax8a5kpyqa
EnWlEbS/+oJSgUl4H6zqTauAncrYpggYkYmhipSAKS011KBZsXtzVQRToRrmhKJB
8eeAFaUdkeou6LGDoa93oR9bDEaeNqM+hc/xcwhtxf4+wc1BzsxKeVdv7ZdwjjqU
CZ+FWhjajwFqn5GL+HubGYQqODlqe5mQoS15RQIDAQABAoIBAHCcxmOLieR1kjmq
tEF3W3CFm3ISC42HrlKrUnAYby6RMOHVl7iBGijD7ribmmk05HYJ7MUvfToPmqj/
rLc3ZzUgAq3xjYyQe3tZ3zf/Fl0UyLlFr+m9n2N/V0ESpQZLwc6kheG8mwuPz8u3
EcAvl6CU4pbx/hcB7HYw1ZZXLMVFpeEFWG8PqOdhgJNujRWFHOlorhExdzj02pHR
okaN2tjGVnyf6dRnMw0TIsrZwyK26fNUScsTRPuBDAL/+zdkb2flyeb1ALz4m1Sv
f8G7sepaf/mwaxqv/zshS/mWbJTHrh1nTjdhINOA1MJtVZ0UjhOZDjeM5LZsiz4V
7yRuxt0CgYEA78Tgw881lnRjfeqozFoIjeTTWib+4+FMXI/+XVm6XiotfHXtIuV5
fo4uYCErI8+wS060wMk/e7HEXyZktqI3a8zRibcbvBNw2NnoXCn5Zo1KTgJ8XiAr
NgBFT30v9sx6NCjBmPQGAnIA8OCsNXb5pceIGb2Z/vTG3YChL2o4ryMCgYEAxDAP
GbAEV4+0+zs3MfTJCRaKm+LI1RcGl4booc4Jf0kRK/NNsrOw9wpNXNgtnO7RapWG
hhO2P9BNBgJa78ruYffm5f/lS/yK1vbsgdCQMrxps8QxdJCBldkD2NkfKsnu1gPU
wHrp9yIvgbE51RKAQhLY6lYm9bJhVmKx4PKksHcCgYEA18ii0/aW7rn+lGLs2USp
8DGg+MChoqqv05oPvSm0rWxeFWX4LfDBv+Dr4b3YGlme+pdx2xMDXConZc6i0y74
m77wUXWGs2P3qmGqWc+40c+UsNJR5VAkM2xY9GnhEccCsBCB80qiYe8B48b/lPpn
QQhq92eIwUi/9Lb/2TFKpGsCgYEAvME4ZhCRvOUIzYaljizjlxjW9zB05YAn2XX1
MGgZfxt/p/eI09xK8QQ6do+PIyQq3A9MxIcGm9L/qD5v27I1NJDc2IEhzcAGnNgp
qKRPeGEKmeizZGD8LH4FU4dikzqBzesVsLMRk7KSXodzCuun9upHRP7qsQ2U1RZT
6gfKJ/UCgYALae1Yao9fTdwryBlpnLJjf2RGGzECueqE6Px/kWuEP62aRJLUWHP2
bfyZ6bYlkj5DMWb8WNlOz8KVOOIuYIyCwJSqXmxvkC5S7ZAHs7bNC6ZA7zLgDxIa
bYW+XbH/zhrkJ0fSPiql690kVu/9ajPpzu/biBkPaeqoUaeyFJKKiA==
-----END RSA PRIVATE KEY-----

可以看到以下页面即可说明配置无误:

#终端查看本地同步过来的文件:
[root@jenkins ~]# ls /var/lib/jenkins/workspace/web1
README.md  test.txt
[root@jenkins ~]# cat /var/lib/jenkins/workspace/web1/test.txt 
aaaa

三、配置Jenkins+Gitlab实现持续集成

接下来就是这篇文件的关键部分了。

在进行下面的配置前,若为了方便,可以先下载(提取码:357v)我提供的插件

然后你会看到一些报红的提示,不用在意,下拉页面,如下:

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

插件上传完成后

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

修改过程如下:

附加内容至此结束

由于接下来多数操作是点点点,所以就不截图了,只会截比较关键的图。

依次点击:系统管理===>>全局安全配置===>>授权策略,然后进行以下操作:

依次点击:系统管理===>>系统设置,下翻找到gitlab,然后进行以下操作:

然后进行以下操作:

#在终端生成令牌并复制:
[root@jenkins ~]# openssl rand -hex 10             #复制下面的字符串
5d1df0a52b307e432844

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

接下来需要去Jenkins找到我们所需的URL

以下操作在Jenkins的web页面进行操作:

看到上述内容后,我们需要对Jenkins的URL进行拼接,大概是Jenkins的访问地址+/job....=身份验证令牌码。我这里拼接后的的如下:

然后回到gitlab的页面,输入Jenkins的URL:

添加后,下拉页面,点击如下以便测试:

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

[root@jenkins ~]# cd test1/
[root@jenkins test1]# echo "abcd" > chixu.txt
[root@jenkins test1]# git add chixu.txt
[root@jenkins test1]# git commit -m "chi xu bu shu test"
[master 52a11ce] chi xu bu shu test
 1 file changed, 1 insertion(+)
 create mode 100644 chixu.txt
[root@jenkins test1]# git push origin master 
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 303 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.171.134:root/test1.git
   1da454a..52a11ce  master -> master

Jenkins可以看到以下,即可说明持续部署配置完成了。如下:

#本地查看测试
[root@jenkins test1]# cat /var/lib/jenkins/workspace/web1/chixu.txt 
abcd
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、部署安装gitlab
  • 二、部署安装Jenkins
  • 三、配置Jenkins+Gitlab实现持续集成
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档