查看原文
其他

流程可视化的利器:Jenkins BlueOcean

汪康 DevOps时代 2024-03-21

一、背景

登录知乎一看,发现有好多人已经关注了这个专栏,然而我已经有半年时间没更新文章了,实在是惭愧。目前忙于工作,忙着将基于jenkins的CI 迁移到gitlab上,大部分项目已经实现了平滑的迁移。
在工具的选择上,对比了gitlab的UI和Jenkins的UI,发现两者实现的功能其实是大同小异的,对于哪种工具更好,这里不做讨论,今天就只是给大家介绍一下jenkins的Blue Ocean插件-→UI十分美观、功能强大的插件。

二、Blue Ocean

Blue Ocean简介

关于Blue Ocean 的详细介绍,请参考官网:https://jenkins.io/zh/doc/book/blueocean/ ,jenkins社区目前在飞速的发展中,目前中文文档看上去挺不错的,不过有英文基础的同学还是建议看英文文档,以防止人为错译。

2. Blue Ocean的好处

  • CI/CD pipeline可视化界面

  • pipeline编辑器(手动傻瓜式操作)

  • 能快速精准的定位到错误

下面给大家一一介绍:

CI/CD pipeline可视化界面


对于这里的信息就不一一介绍了,Blue Ocean上的项目本质上也是jenkins配置,你可以通过修改job配置来更改一些项目信息。如上截图所示的该插件的UI界面,简洁清楚,对于哪个分支执行的哪条pipeline也是一目了然。

pipeline编辑器(手动傻瓜式操作)


如上所示,在该界面,1表示添加一个和 “Test stage”并行的stage,2表示继续添加stage,3处可以添加该stage的详细信息,大家应该发现了:这种方式不需要大家写代码了,而是直接手动进行配置了。因此这种方式算是比较友好了。

快速精准的定位到错误

当点击一条没通过的pipeline后,进入该界面,从该界面中可以看出是哪个stage的哪个step出错了,可以说定位比较快速了,至于各个导航栏的功能,大家可以去尝试下
jenkins的Blue Ocean插件的好处不止于此,个人认为最大的好处是可以手动在界面上配置,然后jenkins自动补全jenkinsfile文件;其次就是界面十分简洁,这个是大部分Devops工具都应该具备的,gitlab的界面也挺不错的,之后有空会给大家介绍下如何使用

3.如何使用Blue Ocean 插件

首先需要jenkins到2.107.2及更加往上的版本,对于jenkins的生产版本,往往是不能随意的升级的,所以我这里使用jenkins镜像来进行测试的,代码库是放在gitlab上(在创建新项目的时候只需要提供仓库的url即可),步骤如下
  • 下载jenkins镜像(默认已安装docker并且网络是没问题的)

    docker pull jenkins/jenkins:latest

注意要用jenkins/jenkins:latest,如果用jenkins:latest的话,版本会比较低,可以去hub官网上查看下版本信息

  • 启动jenkins容器

docker run -d --name myjenkins -p 8080:8080 -p 5000:5000
-v /home/cmroot/jenkins/jenkins_wk:/var/jenkins_home jenkins/jenkins;latest

这里映射的端口可以根据需要进行修改

  • 在浏览器地址输入:ip:8080,初始化jenkins;最后在jenkins管理插件的地方下载Blue Ocean 插件

按照如上步骤就能下载安装一个全新的jenkins环境,用来体验Blue Ocean插件;当然对于docker不熟悉的同学,就直接在自己的测试jenkins上装吧!

4. Blue Ocean插件如何运行的

该插件是基于jenkinsfile来运行的,如果对jenkinsfile还不熟悉的同学,请参考官网以及我之前的文章。该插件只能支持轮询的方式来运行job,下面贴一下我的demo:

pipeline{
agent any
tools{
maven 'maven3.6.1'
}
triggers {
pollSCM('H/3 * * * *')
}
stages{
stage('Test'){
steps{
sh 'mvn clean install'
junit 'target/surefire-reports/TEST-*.xml'
}
}
stage('Deploy'){
steps{
echo "this is a deploying ...."
}
}
}
}
该pipeline定义了maven使用的版本(这是我提前在jenkins的工具中配置好了的);定义了轮询方式,每三分钟检查一次代码,如果有change,就会触发pipeline;定义了两个stage(我在代码中运行五个单元测试的用例,通过mvn命令来执行)。

5. Blue Ocean的不足

  • 必须用轮询的方式

  • 没有与声明式流水线对等

  • 没有提供schedule的UI

  • …….

以上就是关于Blue Ocean的介绍,在github代码仓库中,我也上传了一份.gitlab-ci.yml文件,该文件是告诉gitlab怎么去跑CI的,功能也十分强大,有兴趣的同学可以去研究下;

鉴于时间有限,下次有空再给大家介绍jenkins在运维工作中的一些实践。

写了这么多,希望大家多多使用这个强大的插件,有问题可以一起讨论!

来源:https://zhuanlan.zhihu.com/p/70355846

近期好文推荐:

警惕!DevOps实施中的10个深坑 | 直播活动通知

我只是下了个订单,鬼知道我在微服务里经历了什么…

DevOps转型手记(一):你以为你以为的DevOps就是你以为的 DevOps吗?

“DevOps时代”公众号诚邀广大技术人员投稿。

投稿邮箱:jiachen@greatops.net 或 添加联系人微信:135 2116 9787(同微信)。

点击阅读原文,访问大会官网

你点的每个赞,我都认真当成了喜欢
继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存