1. 引言

Jenkins 是一个自动化服务器,支持数百个管道插件以实现 CI 和 CD 工作流。通常,Jenkins 作为独立的应用程序运行,但也可以部署在不同的 Java servlet 容器中作为 servlet。

本文档将指导您使用 jenkins.war 文件升级 Jenkins 服务器。

2. 下载 Jenkins WAR 文件

jenkins.war Jenkins WAR 文件是一种包含运行持续集成和交付平台所需的所有文件和资源的 Java web 存档文件。这包括 Jenkins 核心代码以及所有插件和依赖项。Jenkins WAR 文件适用于所有类型的 Jenkins 安装,无论安装方法如何

因此,通过 Jenkins WAR 文件更新是任何环境升级 Jenkins 的简单有效方式。

2.1. 检查当前 Jenkins 版本

在继续之前,让我们从控制台检查当前 Jenkins 版本:

关于 Jenkins

如上图所示,Jenkins 当前运行版本为 2.263.4

2.2. 下载 Jenkins WAR 文件

为了升级到最新版 Jenkins,我们需要首先下载最新的 WAR 文件。我们可以使用 wget 命令下载最新的 Jenkins WAR 文件:

$ wget https://updates.jenkins-ci.org/latest/jenkins.war

上述命令将下载最新版 Jenkins WAR 文件。另外,我们还可以从 全球仓库 下载任何版本的 Jenkins。让我们下载 Jenkins 的版本 2.375.1

$ wget https://updates.jenkins-ci.org/download/war/2.375.1/jenkins.war

值得注意的是,当使用 yumapt 安装 Jenkins 时,我们只需运行升级命令即可获取最新版本。如果本地 Linux 存储库中没有最新版本,我们仍然可以通过 wget 命令下载 WAR 文件

3. 安装 Jenkins WAR 文件

为了更新 Jenkins WAR,我们需要找到它的可执行文件。Jenkins 服务器的默认路径可能因操作系统而异。通常,*/usr/share/jenkins/* 和 /usr/lib/jenkins/ 是 Jenkins 服务器家目录的位置。此外,如果 WAR 文件不在这些目录中,我们需要遵循以下步骤来获取实际目录:

  • 访问 Jenkins 控制台
  • 点击 Jenkins 控制台上的 Manage Jenkins
  • 点击 系统信息

可执行 WAR

在上图中,我们可以看到 executable-war 属性中 Jenkins WAR 文件的位置。在升级 Jenkins 服务器之前,请先停止服务器以确保升级过程顺利进行

$ sudo systemctl stop jenkins

一旦服务器停止运行,我们就可以将新的 jenkins.war 移动到 /usr/share/jenkins/ 目录。在移动 jenkins.war 文件之前,我们需要更改其权限 chownchmod

$ cd /download
$ chown root:root jenkins.war
$ chmod 644 jenkins.war

现在,我们将 jenkins.war 文件移动到 executable-war 所指的目录

$ sudo mv /download/jenkins.war /usr/share/jenkins/

为了查看更改,请启动 Jenkins 服务器:

$ sudo systemctl start jenkins

让我们看看检查 Jenkins 服务器状态的命令:

$ systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
   Loaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2022-12-04 07:38:00 UTC; 2s ago

在这里,在上述命令的输出中,我们可以看到服务器已启动并运行。

4. 升级后任务

到目前为止,我们已经完成了所有必要的步骤来更新 Jenkins 服务器。但我们通常还需要执行一些任务以确保与新版本的数据兼容性。

4.1. 验证版本更新

Jenkins 服务器已启动并运行。现在让我们从 Jenkins 控制台验证版本:

Jenkins 版本

升级后的 Jenkins 版本可以在 Jenkins UI 的右下角看到。

4.2. 新版本的兼容性

插件可能是 Jenkins 管道中最关键的部分。事实上,每个作业都使用插件执行以检查已安装插件的可用更新:

  • 访问 Jenkins 控制台
  • 点击 Jenkins 控制台上的 Manage Jenkins
  • 点击 关于插件

Jenkins 管道

上图显示无需更新任何插件。

在升级 Jenkins 后,我们可能会遇到与新版本不兼容的数据问题。因此,为了确保我们的数据处于正确格式,我们应该将其更新到更新的格式。此外,要检查数据版本更新,请按照以下步骤操作:

  • 访问 Jenkins 控制台
  • 点击 Jenkins 控制台上的 Manage Jenkins

数据格式

上图显示我们的新版本与旧版本不兼容。但是,通过点击 管理 按钮,我们可以解决这个问题。

5. 结论