CI/CD工具Jenkins学习(一) (jenkins简介+jenkins的安装+设置gitlab主动触发jenkins)

CI/CD是什么

CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
在这里插入图片描述
CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。
比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。

在这里插入图片描述
当我们把开发周期这样理解时:

编码 → 构建 → 集成 → 测试 → 交付 → 部署

持续集成(Continuous Integration)、持续交付(Continuous Delivery)和持续部署(Continuous Deployment)有着不同的软件自动化交付周期。

持续集成的好处:

  1. 快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易;

  2. 防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

持续集成并不能消除Bug,而是让它们非常容易发现和改正。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

jenkins是什么

Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。

Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

官网:https://jenkins.io/
官方文档:https://jenkins.io/doc/

jenkins的特性

1.开源的java语言开发持续集成工具,支持CI,CD;

2.易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理;

3.消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告;

4.分布式构建:支持Jenkins能够让多台计算机一起构建/测试;

5.文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等;

6.丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

jenkins的安装

软件下载:https://jenkins.io/zh/download/
国内镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/

安装jenkins:
rpm -ivh jdk-8u171-linux-x64.rpm
rpm -ivh jenkins-2.225-1.1.noarch.rpm
systemctl start jenkins
(刚开始未启动时,/var/lib/jenkins/目录里为空,
当启动jenkins时,此目录出现很多文件。
一般等到updates目录出现,就可以进行插件安装。

更新插件源,这里的插件源不进行更新的话,在后面安装插件时,会出现问题,国外镜像站不一定能用。

# vim  /var/lib/jenkins/hudson.model.UpdateCenter.xml 
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>

# cd /var/lib/jenkins/updates

# sed -i.bak 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json

# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
访问: http://172.25.0.12:8080

使用初始密码登录:cat /var/lib/jenkins/secrets/initialAdminPassword

安装默认插件即可,使用admin用户,登录后修改密码。

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
点击右下角的使用admin用户,保存并完成
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

实例配置

接下来的实验环境:

172.25.2.7 ser6 jekins主机
172.25.2.8 ser8 gitlab代码库
172.25.2.2  ser2 harbor仓库

关闭几台主机的selinux,firewalld

1.新建item,选择自由风格。
在这里插入图片描述
2.为gitlab代码库配置认证
在这里插入图片描述
在这里插入图片描述3.解决报错:需要在jenkins主机上安装git工具
在这里插入图片描述
将gitlab主机的私钥添加在jenkins上
在这里插入图片描述在这里插入图片描述
credentials的用户选择为root
在这里插入图片描述
先进行测试,轮询表示jenkins多久去看一下gitlab仓库。这是jenkins主动发起的检测。(每分钟)
在这里插入图片描述
执行shell脚本
在这里插入图片描述在这里插入图片描述
点击保存使更改生效
在这里插入图片描述

等待一分钟左右
在这里插入图片描述
点击控制台输出
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在jenkins主机中发现
在这里插入图片描述在这里插入图片描述

设置gitlab主动触发jenkins

对jenkins进行设置

1.为jenkins安装gitlab插件
在这里插入图片描述
点击插件管理
在这里插入图片描述
选择gitlib并点击直接安装
在这里插入图片描述在这里插入图片描述
安装完成之后,进入工程test1,点击配置

关闭之前测试用的轮询
在这里插入图片描述
构建触发器,让gitlab使用webhook机制主动触发jenkins
在这里插入图片描述
点击高级
点击右下角的generate,获得密钥

在这里插入图片描述点击保存

对gitlab进行设置

点击settings–>管理中心->设置->网络
在这里插入图片描述

按照图示打上勾,点击保存
在这里插入图片描述
进入项目,点击设置->webhooks

在这里插入图片描述在这里插入图片描述
填写url和token,jenkins的
在这里插入图片描述在这里插入图片描述

当出现勾选的情况时应该触发jenkins

点击测试->push events
在这里插入图片描述
push成功
在这里插入图片描述
在jenkins中
在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值