Linux学习笔记---Jenkins+gitlab自动构建

1: Jenkins是什么?

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。JenkinsJava语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。

通常与版本管理工具(SCM)、构建工具结合使用;常用的版本控制工具有SVNGIT,构建工具有MavenAntGradle

2: Jenkins特性:

易于安装:不需要安装、不需要数据库,只需通过java -jar jenkins.war或部署到一个servlet容器中

易于配置:所有的配置都可能通过jenkins提供的web界面完成,当然如果你喜欢,也可以通过手动修改xml文件进行配置

生成JUnit或TestNG的测试报告

文件识别:jenkins能跟踪每次构建生成哪些jar包以及使用哪个版本的jar包

分布式构建

插件支持:jenkins可以通过第三方插件扩展,也可以根据团队需要开发插件

Jenkins中的任务(Job)和构建(build):任务(Job)是Jenkins的一个执行计划,是一系列操作的集合,构建是Jenkins的任务的一次运行。

对于Jenkins是什么,百度百科给的答案是这样的:Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

 

          通过这句话,我们可以得到这样的一个信息——Jenkins是一个开源的东东,好像跟持续集成开发有关系(然而我们并不知道持续集成开发是什么东东)。

            通俗的说,就我目前的理解来看,Jenkins是一个开源的软件。这款软件可以供我们安装,安装成功以后呢,在浏览器中输入 http://localhost:8080(或者是输入http://安装Jenkins电脑的IP:8080)然后按回车键可以出现一个界面,在这个界面上进行一些配置,我们就可以通过这个软件来管理我们正在开发的项目,(具体配置方法,以后文章会有说明)可以让它来减少我们软件开发的时候的出错率,替我们把软件合到一起,并且将有问题的部分检测出来。

Jenkins的功能:

         Jenkins的主要功能是将项目中重复执行的工作自动化的执行。如软件的建造(构建)和在配置文件下设置的job。具体功能大概有:

1.软件的持续构建和测试,Jenkins提供了一个系统,使开发人员可以很容易的将改变集成到工程中。自动化的,持续的构建有利于提高开发效率。

 2.监视job的执行,如下图所示,job可以实现很多的功能,Jenkins可以对这些项目进行显示,让用户更清楚的注意到这些 损毁的job。(具体情况后文中介绍)

3.项目源代码修改的检测,jenkins能够从项目的Subversion/CVS生成最近修改的集合列表,且不会增加Subversion/CVS Repository的负载。

 4.分布式构建,Jenkins可以将工程构建到多台机器,更好地利用硬件资源,节省时间。

 其他,Jenkins代码开源,用户可以自己编写插件。所以jenkins可以实现很多的功能。

 

Jenkins的原理

关于原理,我了解的也不是特别的深刻,先附上师姐的一张图,以后研究深刻了再往这边补上。

https://img-blog.csdn.net/20151213214952043?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

图片转发的博客:http://blog.csdn.net/u010773667/article/details/41845461

安装jenkins:

Jenkins安装基于java1.8版本以上,centos7的java环境默认是1.8版本

[root@lrb ~]# java --version

Unrecognized option: --version

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

使用rpm安装Jenkins,也可以使用源码进行编译安装

 

 

启动Jenkins服务器,Jenkins默认运行在8080端口,但是我们gitlab启动也需要占用8080端口,我们时gitlab和Jenkins在同一台服务器上部署,修改Jenkins的端口为8081,修改端口在Jenkins主配置文件vim /etc/sysconfig/Jenkins

[root@lrb ~]# vim /etc/sysconfig/jenkins

 

 

[root@bogon ~]# tar zxf jenkins-plugins.tar.gz #jenkins插件包

[root@bogon ~]# mv plugins/ /var/lib/jenkins/

[root@lrb ~]# systemctl restart jenkins

浏览器访问192.168.1.10:8081(需要关闭网络,因为网络下载的慢) 访问网页192.168.1.10:8081,访问时将网络关闭,因为稍后会让我们安装插件,我们已经将插件解压到了/var/lib/jenkins/,所以我们不需要在安装。

第一访问的时候需要我们认证,确保安全

这个urlJenkins的地址

因为很多插件需要翻墙才可以继续下载,Jenkins还提供了代理的设置

还可以在服务器目录下进行上传插件‘

目录路径=/var/lib/jenkins/plugins,这个目录下是我们安装所有的插件

安装gitlib进行代码管理

[root@lrb ~]# rpm -ivh gitlab-ce-11.9.8-ce.0.el6.x86_64.rpm

[root@lrb ~]# gitlab-ctl reconfigure初始化gitlab,这里过程比较慢

完成后浏览器访问,第一次访问需要设置登录密码

 

默认登录用户名为root

密码为:1234.com

 

 

创建一个新的项目

项目创建完成后提示ssh没有设置

 

回到主机终端生成密钥并将公钥里面的内容添加进去

[root@lrb ~]# ls web-demo/

README.md

测试是否能文件上传成功

回到浏览器查看是否上传成功

我们项目的路径默认是使用域名进行访问的,我们没有设置hosts文件解析,可以修改gitlab的配置文件修改项目访问的路径url

[root@lrb web-demo]# vim /etc/gitlab/gitlab.rb

重启服务查看

[root@lrb web-demo]# gitlab-ctl reconfigure

[root@lrb web-demo]# gitlab-ctl restart

如果重启后访问出现502可以稍等会在去访问,或者加大内存

可以看到变成了IP进行访问

再次创建项目完成后路径是使用IP地址进行访问

回到Jenkins部署项目

这里出现报错,因为我们使用的是ssh进行访问gitlab仓库,但是Jenkins需要没有私钥,所有没有访问的权限,点击上面的添加

将刚在gitlab上生成的私钥复制到jenkins配置页面上来

Gitlib版本,我们安装的就是11.9

2、Jenkins+gitlab集成后,实现的功能是,开发写好代码提交到gitlab上,当push到gitlab上之后,Jenkins自动帮我们构建

这个项目我们需要安装一个gitlab钩子脚本

这样我们的Jenkins+gitlab就集成了,当我们开发人员写好代码提交到gitlab上,当push到gitlab上之后,我们在Jenkins点击构建就可以了,不过这样有点麻烦,接下来我们来让Jenkins自动构建,这样我们就轻松多了

需要安装gitlab-oauthgitlab-pluginwindows-slavesruby-runtimegitlab-hook五个插件,如果有安装包可直接上传安装,如果没有就自行下载,按照顺序安装,不然可能会出错。需要关闭网络重启jenkins

https://mirror.tuna.tsinghua.edu.cn/  可以在此网站下载插件

系统管理----插件管理----高级-----上传插件---

系统管理-----全局安全设置----授权策略----取消勾选防止跨站点请求伪造----勾选匿名用户具有可读权限

系统管理---系统设置---取消勾选Enable authentication for '/project' end-point---保存

点击Jenkins后的倒三角------配置-----构建触发器-----勾选触发远程构建----构建身份令牌(在终端执行openssl rand -hex 10)生成的令牌df1b50eb7363c22cfaaa

勾选Build when a change is pushed to GitLab-------保存

回到gitlabweb页面---点击小钳子----settings----Network-----点击outbound requests后面的Expand-----勾选Allow requests to the local network from hooks and services----save changes

点击projects----your project----wyk-dsg----settings---Integrations----

这个路径在jenkins网页的项目里面---配置----构建触发器---

点击test测试,测试成功会显示202

成功够我们回到终端创建文件,将文件推送到gitlab中:

推送到gitlabJenkins会自动构建,不需要我们手动构建。

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值