Jenkins学习笔记分享

博主花费了几天时间从官网学习Jenkins的使用,途中踩了不少坑,特此分享。

  • 不要使用Jenkins的较旧版本
    • 需要下载兼容的插件版本,非常麻烦
  • 不要使用Windows的Docker desktop
  • 不要使用WSL(Windows的Linux子系统)

文章使用的是Ubuntu 22.04.03版本(ubuntu-22.04.3-desktop-amd64.iso)


参考官方文档:

1、使用Jenkinsfile定义流水线

使用Jenkinsfile

复制代码
https://www.jenkins.io/doc/book/pipeline/jenkinsfile/

流水线语法

复制代码
https://www.jenkins.io/doc/book/pipeline/syntax/

2、在流水线中使用Docker

复制代码
https://www.jenkins.io/doc/book/pipeline/docker/

3、管理Jenkins插件

复制代码
https://www.jenkins.io/doc/book/managing/plugins/

4、使用环境变量

复制代码
https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables

目录

前置环境安装

安装JDK

安装Maven

安装Docker

Jenkins快速入门

Jenkins官网

中文文档

英文文档

Jenkins流水线

[Blue Ocean插件](#Blue Ocean插件)

[访问Blue Ocean](#访问Blue Ocean)

创建流水线

创建证书

创建流水线

流水线创建完成

查看流水线执行

编辑流水线过程

修改代理类型

创建环境变量

添加执行步骤

Jenkinsfile

开始使用Jenkins

下载Jenkins

选择版本

下载安装包

启动Jenkins

访问Jenkins

获取IP

观察日志

复制密码

浏览器访问

输入密码

下载插件

创建用户

实例配置

完成初始化

使用Jenkins

保存插件

插件管理

安装插件

高级安装

下载失败

加载失败

卸载插件

常用插件

流水线Git仓库


前置环境安装

安装JDK

在Ubuntu虚拟机上安装jdk-21。

安装Maven

在Ubuntu虚拟机上安装Maven,跟在Windows上安装是一样的,但是/config/settings.xml文件中的`<localRepository>`节点指定的目录要改一下,改成linux的目录。

博主使用的Maven安装目录和本地仓库路径:

  • 安装目录:/software/maven/apache-maven-3.6.1
  • 本地仓库:/software/maven/repository

安装Docker

在Ubuntu上提前安装Docker,因为构建镜像要使用docker命令。

Ubuntu上安装和使用Dockerhttps://blog.csdn.net/heyl163_/article/details/131503469

Jenkins快速入门

Jenkins官网

学习Jenkins很坑的地方之一就是中文和英文文档的内容不一样,需要结合两种文档学习。

中文文档

复制代码
https://www.jenkins.io/zh/doc/

英文文档

复制代码
https://www.jenkins.io/doc/

Jenkins流水线

Jenkins中的任务(Job)以流水线(Pipeline)的形式运行。

Blue Ocean插件

Blue Ocean是Jenkins官方文档推荐的Web UI插件,可以很方便定义流水线。

访问Blue Ocean

安装完Blue Ocean插件之后,重启Jenkins。

如下图,点击右上角的对应图标,点击打开Blue Ocean即可访问Blue Ocean的界面。

创建流水线

点击【创建新的流水线】按钮,

创建证书

以Gitee为例,介绍如何连接代码仓库。

1、填写Git仓库的地址;填写Git账号及密码,点击【创建证书】按钮,保存Git账号和密码。

如果不创建证书,每次创建流水线都要重新输入账号密码。

创建流水线

点击【创建流水线】按钮完成创建。

流水线创建完成
查看流水线执行

点击活动下方的列表中的一行,可以查看执行结果。

编辑流水线过程

点击右上角的编辑图标,可以对流水线进行编辑。

修改代理类型
创建环境变量

点击环境变量表格的第一行最后一列的+按钮添加环境变量。

添加执行步骤

点击任意一个+图标按钮,可以在各阶段之前/之后添加步骤。

输入阶段名称

添加步骤

点击【+添加步骤】按钮,为当前阶段添加步骤。

选择步骤类型

输入执行脚本

步骤创建完成。

最后,只需要点击【保存】按钮即可将变更提交回代码仓库。

Jenkinsfile

Jenkinsfile是定义流水线的脚本文件。

如果创建流水线时连接的仓库的项目同级目录下有Jenkinsfile文件,Jenkins会自动加载里面的内容。

开始使用Jenkins

下载Jenkins

选择版本

根据Java版本选择下载对应版本的jenkins安装包。

复制代码
https://www.jenkins.io/doc/book/platform-information/support-policy-java/

直接下载最新lts版本(如上图:2.555.1)即可,好处是:不需要考虑安装的插件的版本。

下载安装包

直接访问lts版本的最新版本即可,Java版本要求页面的表格不是实时更新的。

java 复制代码
https://mirrors.jenkins.io/war-stable/

点击页面最上面两个下载链接都可以下载Jenkins的最新lts版本。

启动Jenkins

创建Jenkins的主目录,用于存放Jenkins的安装包(jenkins.war)。

bash 复制代码
/software/jenkins

将下载下来的jenkins.war文件上传到Ubuntu的/software/jenkins目录下。

java 复制代码
cd /software/jenkins

java -jar jenkins.war

第一次运行jenkins.war会在root目录下创建jenkins的安装目录:.jenkins

访问Jenkins

获取IP

获取Ubuntu的IP地址,比如博主获取到的IP是:192.168.106.128

bash 复制代码
ip addr
观察日志

等待Jenkins完全启动好了之后,继续下面的操作。

复制密码

复制这个密码,在第一次访问Jenkins时需要

浏览器访问

通过浏览器地址栏输入8080端口,访问Jenkins

bash 复制代码
http://192.168.106.128:8080/
输入密码
下载插件

默认只需要点击蓝色的选项:【安装推荐的插件】

接下来就是漫长的插件安装过程。

如果不是第一次使用Jenkins,完全不需要这么做,太浪费时间了。

点击第二个选项:【选择插件来安装】,点击【无】,取消所有插件的勾选。

创建用户

可以创建一个自定义的管理员账户,输入密码和你的名字/昵称(可以是中文)。

也可以使用默认的amin账户,密码就是前面从启动日志里复制的密码。

填写完表单信息之后,点击【保存并完成】,进入下一个步骤。

实例配置

这里不需要更改,直接点击【保存并完成】

完成初始化

至此,Jenkins所有安装初始化过程都已经完成了。

点击【开始使用Jenkins】进入到Jenkins首页。

使用Jenkins

保存插件

如果你经历过了下载插件的漫长过程,可以将/root/.jenkins/plugins目录压缩一下,并保存下来。

bash 复制代码
cd /root/.jenkins

zip -r plugins.zip plugins

下次新安装Jenkins时,就不需要重新去下载插件了。

把这个plugins.zip上传到jenkins安装目录下并解压。

jenkins启动完成后,就会自动完成这些插件的加载。

插件管理

点击右上角的设置(齿轮)小图标。

然后点击Plugins选项,打开插件管理页面。

安装插件

点击左侧Avaliable plugins,在搜索框输入插件名称搜索插件,勾选并点击【Install】安装该插件。

点击【Install】下载按钮之后,会打开下载进度的界面,显示插件的所有依赖的下载进度。

高级安装

如图所示,依赖下载失败是很常见的,即使使用了科学上网工具,也难免会因为超时而失败。

失败的原因一般有两种:

  • Connect timed out:连接超时,导致下载失败
  • Failed to load: XXX Plugin,Failed to install xxx plugin:由于依赖的插件下载失败而加载失败
下载失败

点击Failure后面的Details按钮。

查看展开的失败原因:连接超时。

这时候,只需要复制插件名称,然后到插件安装页面手动下载。

点击搜索结果,进入到插件的发布页面,点击最新版本的下载链接。

会下载下来一个.hpi文件

点击【Advanced settings】(高级设置)菜单,点击【浏览】文件框选择刚刚下载的.hpi文件。

选择好文件之后,点击【Deploy】直接安装插件。

可以看到,在任务列表最后面新增了一个插件安装任务。

加载失败

由于被依赖的插件下载失败,会导致依赖的插件加载失败。

这种情况只需要通过上述方式安装下载失败的被依赖插件(案例中是scm-api)即可,然后重新启动Jenkins。

卸载插件

点击左侧Installed plugins,在搜索框输入插件名称搜索插件,点击插件列表每行的右边删除图标删除该插件,点击确认框的【Yes】按钮完成删除操作。

常用插件

Jenkins常用插件列表:

|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
| 插件名称 | 插件地址 |
| Pipeline | https://plugins.jenkins.io/workflow-aggregator/ |
| Blue Ocean | https://plugins.jenkins.io/blueocean/ |
| Docker Pipeline | https://plugins.jenkins.io/docker-workflow/ |

流水线Git仓库

文章中使用的Git仓库地址,实现了简单的CI/CD

jenkins CI/CD测试使用项目https://gitee.com/muyu-chengfeng/jenkins-ci.git