部署Jenkins+Gitlab实现持续集成

前言

Jenkins介绍

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

参考文献:Jenkins中文网

在进入部署安装的正题之前,有以下几个问题需要搞清楚!!!

1、什么是集成?

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

2、什么是持续集成?

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

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

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

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

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

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

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

2)安装维护简单

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

3)Java应用常用

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

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

一、部署安装gitlab

1、安装gitlab

[[email protected] ~]# wget https://mirrors-i.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.9.8-ce.0.el7.x86_64.rpm
[[email protected] ~]# rpm -ivh gitlab-ce-11.9.8-ce.0.el7.x86_64.rpm
#由于我不打算做域名解析,所以需要修改其配置文件
[email protected] ~]# vim /etc/gitlab/gitlab.rb
external_url ‘http://192.168.20.2‘     #将原本的域名改为本机IP
[[email protected] ~]# gitlab-ctl reconfigure  #重新配置gitlab,就算不修改配置文件,也需要在安装后重新配置gitlab
[[email protected] ~]# netstat -anpt | grep -w 80    #确定其80端口在监听

2、配置gitlab

客户端访问服务器的IP地址,可以看到以下界面(配置密码并登陆):

上传服务器公钥(接下来的操作与在github上大同小异),先在服务器上生成密钥对:

[[email protected] ~]# ssh-keygen -t rsa -C "[email protected]"
[[email protected] ~]# cat ~/.ssh/id_rsa.pub    #查看生成的公钥并复制其内容
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeOeInVnfQiVdTTiA8MyaIuMdrtQUce1BpiBR8d2IAWS4PVznRub+m9hRR2vRRK3K3T4oMGpgjvj7s5n8n4AcFojDRsNgCrpprz4jlTykm0okQclXtOzeFfpLzwp08l0mmb3ZotuU/iK5sYUh70MAxG/gSzfZ5Cscmba+HGSYksN75BRkYBOT3VBJHuqhdHEIrmK0uOUU4/F3ImqrBoOs3/2c6aI5AxrHGy3aVdWAcg2Pg541djMD74DJCaVpPj08GQNZZBmN/p7Ft3v6Vi+jqty7CQF+uhs1x3oD/tka88F/4A/rMR862TqATQ+Uuqn2LOfrvGR6kzJH5MtyKOumB [email protected]

然后回到web界面:

添加后如下:

创建一个库:

回到服务器上进行克隆刚刚创建的库:

[[email protected] ~]# git clone [email protected]:root/test01.git  #克隆
[[email protected] ~]# cd test01/      #进入克隆的库
[[email protected] test01]# ls  #该目录下的东西和刚刚web页面创建好库后的内容一样
README.md
#自报家门
[[email protected] test01]# git config --global user.name test
[[email protected] test01]# git config --global user.email "[email protected]"
#向远端库上传文件进行测试
[[email protected] test01]# echo "aaaaaaaaaaaa" > test.txt
[[email protected] test01]# git add test.txt
[[email protected] test01]# git commit -m "commit from local"
[[email protected] test01]# git push origin master      #推送到远端库

刷新web界面的库页面即可看到刚刚推送的测试文件:

至此,说明gitlab配置无误,即可告一段落。

二、部署安装Jenkins

1、安装Jenkins

#下载并安装
[[email protected] ~]# wget https://mirrors-i.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.172-1.1.noarch.rpm
[[email protected] ~]# rpm -ivh jenkins-2.172-1.1.noarch.rpm
[[email protected] ~]# rpm -ql jenkins      #查看其相应文件的存放路径
[[email protected] ~]# sed -i ‘s/JENKINS_PORT="8080"/JENKINS_PORT="8081"/g‘ /etc/sysconfig/jenkins     #修改其监听端口
[[email protected] ~]# /etc/init.d/jenkins start     #启动Jenkins
[[email protected] ~]# netstat -anpt | grep 8081      #确定端口在监听
tcp6       0      0 :::8081                 :::*                    LISTEN      65172/java          

2、配置Jenkins的web界面

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

[[email protected] ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
e501f94f2d914b22ae6ef7384b34531a

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

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

[[email protected] ~]# tar zxf jenkins-plugins.tar.gz -C /var/lib/jenkins/
[[email protected] ~]# /etc/init.d/jenkins restart    #重启Jenkins

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

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

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

[[email protected] ~]# cat ~/.ssh/id_rsa      #复制查看到的所有内容,包括开头和结尾的“---”行
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAnjniJ1Z30IlXU04gPDMmiLjHa7UFHHtQaYgUfHdiAFkuD1c5
0bm/pvYUUdr0UStyt0+KDBqYI74+7OZ/J+AHBaIw0bDYAq6aa8+I5U8pJtKJEHJV
7Ts3hX6S88KdPJdJpm92aLblP4iubGFIe9DAMRv4Es32eQrHJm2vhxkmJLDe+QUZ
GATk91QSR7qoXRxCK5itLjlFOPxdyJqqwaDrN/9nOmiOQMaxxst2lXVgHINj4OeN
XYzA++AyQmlaT49PBkDWWQZjf6exbd7+lYvo6rcuwkBfrobNcd6A/7ZGvPBf+AP6
zEfOtk6gE0PlLqp9izn67xkepMyR+TLcijrpgQIDAQABAoIBABIUCwLznjz1dETQ
aF54ea6lbiOgSzU14botEiomecwQZHLcRH7x+jPZafjwS3n6vOC09dDsOPXchtQK
gfzMXAEIxwsuaX/k8z/eNoX8xXbqFz8J0UeJvI5EKAYx9kU2A/RASAcu3oKj20oG
04FSGKODzpRXdBHgaWC6p5OIDBOk88zsVK6ZXniVoCHhb1ngAa8k45m4IEXBspmk
znd7/8VxKkMt76IWZcgVaDOLHEbh4ikg+WL1M/DnvToCtZrb24jRbkHy2IM2oh/y
awW2WGP/KDHro1hO0mZvcBWxhN++2AExRKDXFnSN0TyMJwIb18RaYhBaBt+iJFoE
/Fv9sAECgYEA0d4LMXhXHis7I+ccEQKcfFtpFf4fgEJ7+XeyUiRTnqDmMOjSk1TL
0JMiIpzD6FTXxp/wo2JTHDKLxqW5U7qhxSZFkNwJcuGISJqD8U3jp14hdrbwAQbi
jniTAJM5mO0Un/OOhbtSaXXsRlUDkgcG4nM2g4SRehTlLSh0qkiZ+KkCgYEAwQHP
Luh/YYis31oAdrF+1JyK2OBiLg+YuLbx6j7b0gLTwJA2KFKchnNHZ1uWq616Ewf3
7Ajy1/8VlAfnSWZh1TPHEFAYes293AT6Z0Ij8eEc9dG/O4Lq/bM3ChgxYKP4ef/E
BwuijDz0wDn253QfcGuh4Ss15DtbOS+abDS0ORkCgYAoRzdavT/rGFz3XQmz8g5a
h6i5gdZF5XypumFNBo/N6A+F34laoXGkjDiG8BNhabcn9dZXZS2SQdk1vOS+vxkB
H4FGdhSSKdrgJFeiXlKM8rH1eNLDP7EHqvh7qcXqJcZJlJML85Gzj+BS90oCIrsd
hwM1ZqINDimV6yfI7rouUQKBgBtP4DupFu18Y8oveEVTlLkNdfB+wCX4ewoYiV82
ifDMCZ8ESUWnexLjmUUdBtNAdzfeNs0l7wd1x13tSGNwo4OCEjdSvkQSfT13Tt/x
0hhWXLzEc6U+P3arN6ysA8DDM1RAR0Mf+F6T+aaCDVhvbEuCT6QHc1bat2v+OoH5
a09xAoGBAJGu+GSpxO/vRDfxaJGgclhEXpCahuL6ggUZcZSsUu/qiCq4cbSC26/9
X7+cws3d5ow1vIZttM19meK1Z6r0qOii7GOX3vEWVsDyrt5rpVNSb/M6F1D7MV07
YV1esSxZGB9Spa7TAzuE2bwkMIDAu72nCRx+MO83vHSFRpkln+7O
-----END RSA PRIVATE KEY-----

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

终端查看本地同步过来的文件:

[[email protected] ~]# ls /var/lib/jenkins/workspace/web01
README.md  test.txt
[[email protected] ~]# cat /var/lib/jenkins/workspace/web01/test.txt
aaaaaaaaaaaa

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

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

在进行下面的配置前,若为了方便,可以先下载我提供的插件。

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

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

根据以下操作,依次上传上面的包:

插件上传完成后,即可。

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

修改过程如下:

附加内容至此结束。

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

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

依次点击:系统管理===》系统设置,然后进行以下操作:

然后进行以下操作:


在终端生成令牌并复制:

[[email protected] ~]# openssl rand -hex 10  #复制下面的字符串
dbd47a73dba048febf4f

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


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

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

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

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

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

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

#向gitlab提交新代码
[[email protected] ~]# cd test01/
[[email protected] test01]# echo "dffffffffdfdfdfdf" > chixu.txt
[[email protected] test01]# git add chixu.txt
[[email protected] test01]# git commit -m "chi xu bu shu test"
[[email protected] test01]# git push origin master

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

算了,还是在本地看一下吧:

[[email protected] test01]# cat /var/lib/jenkins/workspace/web01/chixu.txt
#就是我们刚提交的文件
dffffffffdfdfdfdf

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

原文地址:https://blog.51cto.com/14154700/2450875

时间: 2024-11-03 05:27:36

部署Jenkins+Gitlab实现持续集成的相关文章

Jenkins+Gitlab实现持续集成

一.Jenkins及持续集成 1)什么是Jenkins? Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:1)持续的软件版本发布/测试项目:2)监控外部调用执行的工作: 对Jenkins有兴趣的朋友可以参考Jenkins中文文档 2)什么是持续集成? 1)什么是集成? 指的是代码由编译.发布.测试.上线的一个过程! 2)什么是持续集成? 高效的.持续性质的不断迭代代码

Jenkins+Gitlab实现持续集成 [二]

项目:使用git+jenkins实现持续集成 开始构建 General 源码管理 我们安装的是git插件,还可以安装svn插件 我们将git路径存在这里还需要权限认证,否则会出现error 我们添加一个认证 选择一下认证方式(我们可以在系统管理-->Configure Credentials)里面进行设置 #提示:gitlab有一个key,是我们用来做仓库的key.拥有的权限是read-only 公钥我们需要在服务器上查看. [[email protected] ~]# ssh-keygen -

CentOS6.8 部署Tomcat+jenkins+git+maven 持续集成

CentOS6.8 部署Tomcat+jenkins+git+maven 持续集成 一.环境介绍: 1.操作系统:CentOS 6.8  IP:192.168.1.100 2.JDK版本:jdk1.8.0_101 3.Tomcat版本:tomcat-9.0.0.M21 4.jenkins版本: Jenkins ver. 2.46.3 5.git版本:git version 2.9.4 6.maven版本:3.5.0 二.环境部署 1.下载所需软件包 # mkdir /tmp/soft ; cd

jenkins + Git 搭建持续集成环境

jenkins + Git 搭建持续集成环境 持续集成通过自动化构建.自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态.jenkins是目前广泛应用的持续集成工具,本文记录我使用jenkins+Git配置持续集成环境的整个流程以及踩到的坑(jenkins过程的坑往往不是在第一次配置,而是在配置结束后更改某些配置项的时候踩到). 总体流程如下: tomcat8.0下载地址:http://tom

基于 Jenkins 快速搭建持续集成环境

持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础.Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能.本文正是从持续集成的基本概念入手,通过具体实例,介绍了如何基于 Jenkins 快速搭建持续集成环境. 持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变

Jenkins 快速搭建持续集成环境

持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要. 持续集成正是针对这一类问题的一种软件开发实践.它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成.而每次的集成都是通过自动化的构建来验证,包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快

实战docker+jenkins+git构建持续集成环境

本文重点介绍jenkins以及让jenkins如何实现在docker容器中运行.jenkins和docker私有仓库又是怎么结合的.docker说明及安装和git说明及安装在本文中不会特别详细的介绍. ?并且,在本文中不着重介绍原理性的东西,比如不会介绍什么是持续集成.持续构建等等.本文的重点是实战为主.对持续集成.持续交互.持续部署不太了解的朋友可以参考这篇文章了解一下:https://www.zhihu.com/question/23444990 1.背景说明 Jenkins是一个开源软件项

简单搭建Gitlab CI持续集成环境

简单搭建Gitlab CI持续集成环境 简单介绍Gitlab CI的功能 从GitLab 8.X 开始,GitLab CI就已经集成在GitLab中,我们只要在项目中添加一个.gitlab-ci.yml文件,然后添加一个Runner,开启Runner,即可进行持续集成.而且随着GitLab的升级,GitLab CI变得越来越强大. GitLab Runner 在没使用过Gitlab之前,我也有一个困惑,到底Gitlab Runner是什么东西.它的作用是什么?</br>GitLab Runne

Artifactory &amp; GitLab CI持续集成实践

GitLab CI支持创建多个构建,并评估每次代码提交是否通过测试和以及对您产品的影响.在构建过程中,会生成大量二进制文件,如果不能正确的大规模管理这些文件,就会导致二进制文件管理混乱.为了克服这个问题,Artifactory被无缝地集成到GitLab CI构建过程中,以便更好的发布和管理这些二进制文件,并通过JFrog CLI, GitLab CI缓存.发布您的依赖包.制品包和构建信息到Artifactory. 这篇文章描述了如何将 GitLab CI 与 Artifactory 集成在一起,