使用`War`包部署`Jenkins`(超级详细)

使用War包部署Jenkins(超级详细)

别着急,你看这年复一年,春光不必趁早,冬霜不会迟到。过去的都会过去,该来的都在路上,一切都是刚刚好。

网站说明

https://get.jenkins.io/war-stable/ war包下载地址

https://www.jenkins.io/doc/book/installing/ 部署文档

https://www.jenkins.io/doc/book/installing/docker/ docker部署文档

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates 清华镜像源

https://mirrors.huaweicloud.com/apache/maven/maven-3/ 华为maven镜像地址

关于Jenkins版本的说明

由于Jenkins的版本不同,其自带的JDK版本不同,而且,不管是Docker部署,还是Jenkins部署,都涉及到这个版本相关的问题,所以,有必要这里说明一下

Long Term Support (LTS) Release Line

Supported Java versions for the LTS release line are:

  • 2.361.1 (September 2022) and newer

Java 11 or Java 17

  • 2.346.1 (June 2022) and newer

Java 8, Java 11, or Java 17

  • 2.164.1 (March 2019) and newer

Java 8 or Java 11

  • 2.60.1 (June 2017) and newer

Java 8

  • 1.625.1 (October 2015) and newer

Java 7

上述这段文字来自于官网对于Jenkins版本的相关说明

这段文字列出了 Jenkins LTS(长期支持)版本中每个版本所支持的 Java 版本。以下是详细说明:

  • 最新的 LTS 版本(2.361.1 及更高):这些版本支持最新的 Java 版本,即 Java 11 和 Java 17。使用这些版本可以利用最新的 Java 特性和性能改进。

  • 中间版本(2.346.1 至 2.361.0):这些版本兼容多种 Java 版本,支持 Java 8、Java 11 和 Java 17,为用户提供了灵活性,可以根据需求选择不同的 Java 版本。

  • 更早的 LTS 版本(2.164.1 至 2.346.0):这些版本支持 Java 8 和 Java 11。Java 8 是一个长期广泛使用的版本,而 Java 11 是一个 LTS 版本,提供了较新的特性和改进。

  • 老版本(2.60.1 至 2.164.0):这些版本仅支持 Java 8。Java 8 在这些版本中是唯一支持的 Java 版本,确保了稳定性和兼容性。

  • 最早的 LTS 版本(1.625.1 至 2.60.0):这些版本支持 Java 7。Java 7 已经相对较老,但在这些版本发布时仍被广泛使用。

所以,需要部署Jenkins的时候,需要先确认自己所部署的项目JDK版本依赖,以及服务器目前的JDK版本,高版本的JDK跑低版本的JDK尚可,但是反其道而行是万万不可的

查看本地JDK环境

sh 复制代码
 java -version

使用War包启动Jenkins

由于本地使用的是jdk8,所以我这里就下载2.246.1版本的jenkins

下载地址 https://get.jenkins.io/war-stable/2.346.1/

然后放到指定位置,执行如下命令

sh 复制代码
export JENKINS_HOME=/home/jenkins/jenkins_home
java -jar jenkins_8.war (改命令待优化)

在命令行中使用 export JENKINS_HOME=/home/jenkins/jenkins_homejava -jar jenkins_8.war 两条命令,为什么呢?

  1. export JENKINS_HOME=/home/jenkins/jenkins_home:

    • 这条命令设置了一个环境变量 JENKINS_HOME,将其值指定为 /home/jenkins/jenkins_home
    • JENKINS_HOME 环境变量用于指定 Jenkins 的主目录位置,所有的 Jenkins 配置文件、工作目录以及插件等都存储在这个目录中。
  2. java -jar jenkins_8.war:

    • 这条命令启动 Jenkins 应用。-jar 参数告诉 Java 运行时执行一个 JAR 文件(在这种情况下是 jenkins_8.war,一个 WAR 文件实际上也是一个 JAR 文件)。
    • 这个命令启动 Jenkins,并根据配置文件和插件信息开始运行。

组合使用的效果

将这两条命令组合在一起:

bash 复制代码
export JENKINS_HOME=/home/jenkins/jenkins_home
java -jar jenkins_8.war

或在同一行中执行:

bash 复制代码
export JENKINS_HOME=/home/jenkins/jenkins_home && java -jar jenkins_8.war

其效果如下:

  1. 首先,设置 JENKINS_HOME 环境变量,使得 Jenkins 知道要将其所有的配置和数据存储在 /home/jenkins/jenkins_home 目录下。
  2. 然后,启动 Jenkins 应用,Jenkins 将使用刚刚设置的 JENKINS_HOME 目录作为其主目录。

这样做的意义

  1. 数据存储管理

    • 通过设置 JENKINS_HOME,可以灵活地指定 Jenkins 的主目录位置,方便管理和备份 Jenkins 数据。
    • 可以将 Jenkins 数据存储在特定位置,而不是使用默认位置(通常是 /var/lib/jenkins 或者其他根据安装方式不同的默认路径)。
  2. 环境配置

    • 可以在不同的环境中使用不同的 Jenkins 主目录,例如在开发、测试和生产环境中使用不同的配置目录。
    • 当迁移 Jenkins 实例时,可以简单地更改 JENKINS_HOME,以便 Jenkins 使用新的数据目录。

启动后会有一个秘钥

插件版本依赖问题解决

这个报错信息来自 Jenkins 插件 "Pipeline: Milestone Step" 版本 119.vdfdc43fc3b9a_,提示 Jenkins 版本不满足要求。详细解释如下:

错误信息解析

  • Pipeline: Milestone Step (119.vdfdc43fc3b_9a_):指的是特定版本的 Jenkins 插件 "Pipeline: Milestone Step"。
  • Jenkins (2.361.4) or higher required:表示这个插件版本要求 Jenkins 主程序的版本至少为 2.361.4。

具体含义

这个错误提示的意思是,你当前安装的 Jenkins 主程序版本低于 2.361.4,而你安装或尝试使用的 "Pipeline: Milestone Step" 插件版本需要 Jenkins 主程序至少为 2.361.4。因此,插件无法在当前的 Jenkins 环境中运行。

现在需要我们去切换下载源,我们需要切换下载源为清华源

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-2.346/

指向清华大学开源软件镜像站提供的 Jenkins 更新服务。具体来说,这是一个 Jenkins 更新站点的镜像,提供了与 Jenkins 版本 2.346 相关的更新和插件信息。

具体用途

  1. 插件更新
    • 该链接提供 Jenkins 插件更新的信息和下载。Jenkins 使用这个更新站点来检查和下载插件的最新版本。
  2. 更新 Jenkins 核心
    • 如果你正在运行 Jenkins 2.346 或类似版本,这个更新站点会提供与之兼容的更新和补丁。
  3. 本地镜像加速
    • 使用清华大学开源镜像站的好处是可以通过国内的高速网络访问 Jenkins 更新资源,这比直接从 Jenkins 官方站点下载要快得多,特别是对于国内用户。

这里我们直接下载update-center.json然后完成进行替换,这里有两个地方需要替换,第一个地方是

我们使用export指定了JENKINS_HOME的主目录,我们需要下载update-center.json替换原来的

sh 复制代码
mv default.json default.json.bk
mv  update-center.json default.json

然后在Jenkins管理界面配置一下

将这个站点替换为清华镜像源

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-2.346/update-center.json 对应自己的war包版本

新的镜像源验证签名失败

进入插件下载目录报错如下

sh 复制代码
"Jenkins: signature verification failed in update site 'default' (show details)"

"Jenkins: signature verification failed in update site 'default' (show details)" 这条错误信息表示 Jenkins 在尝试从默认更新站点获取更新或插件时,无法验证签名。这通常意味着 Jenkins 不能确认下载的更新或插件是否来自可信的来源。

export JENKINS_HOME=/home/jenkins/jenkins_home

nohup java -Djdk.security.allowNonCaAnchor=true -Dhudson.model.DownloadService.noSignatureCheck=true -jar jenkins_8.war --httpPort=8081 > jenkins.log 2>&1 &

参数解释

  1. -Djdk.security.allowNonCaAnchor=true
    • 该参数允许使用非 CA(证书颁发机构)签署的证书作为信任锚。这可以解决因为证书问题导致的签名验证失败。
  2. -Dhudson.model.DownloadService.noSignatureCheck=true
    • 该参数禁用 Jenkins 的插件和更新签名检查。这可以解决由于签名验证失败导致的更新问题。

现在,我们就彻底完成了部署,整个环境并且准备好了,而且这条命令配置了制定了端口,而且静默启动,还指定了主目录,绕过了签名认真

配置maven环境

好的,按照你的要求,我们将 Maven 安装目录设为 /usr/local/src,并直接修改 /etc/profile 文件来配置环境变量。

下载 Maven

使用 wget 从华为云镜像站下载 Maven:

bash 复制代码
cd /usr/local/src
wget https://mirrors.huaweicloud.com/apache/maven/maven-3/3.9.7/binaries/apache-maven-3.9.7-bin.tar.gz

解压 Maven

下载完成后,解压 Maven 包:

bash 复制代码
 tar -xzf apache-maven-3.9.7-bin.tar.gz

重命名解压后的目录以简化路径:

bash 复制代码
 mv apache-maven-3.9.7 maven

配置环境变量

为了让 Maven 可以在终端中全局使用,我们需要配置环境变量。编辑 /etc/profile 文件:

bash 复制代码
vim /etc/profile

在文件末尾添加以下内容:

bash 复制代码
# Maven environment variables
export M2_HOME=/usr/local/src/maven
export PATH=${M2_HOME}/bin:${PATH}

保存并关闭文件。然后使这些更改立即生效:

bash 复制代码
source /etc/profile

配置 Maven 仓库镜像和本地仓库路径

编辑 Maven 的设置文件 settings.xml,配置阿里云的 Maven 仓库镜像和本地仓库路径。这个文件通常位于 Maven 安装目录的 conf 目录下。

sh 复制代码
vim /usr/local/src/maven/conf/settings.xml

在文件中做以下修改:

  1. 设置本地仓库路径: 在 <localRepository> 标签内添加本地仓库路径。
  2. 添加阿里云的 Maven 仓库镜像: 在 <mirrors> 标签内添加阿里云镜像配置。

修改后的 settings.xml 文件内容如下:

xml 复制代码
<settings>
    <!-- Local Repository Path Configuration -->
    <localRepository>/usr/local/src/maven/maven-repo</localRepository>
    
    <!-- Mirrors Configuration -->
    <mirrors>
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>

    <!-- Other configurations can remain unchanged -->
</settings>

保存并关闭文件。

验证安装

验证 Maven 是否成功安装并配置:

bash 复制代码
mvn -version

如果输出类似于以下内容,则说明 Maven 安装和配置成功:

plaintext 复制代码
Apache Maven 3.9.7 (bb84b2260df7c3dd2fbabe468b23b6ad3f05db84)
Maven home: /usr/local/src/maven
Java version: 1.8.0_292, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.49.1.el7.x86_64", arch: "amd64", family: "unix"

配置maven

配置JDK环境

相关推荐
Fcy64820 分钟前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满21 分钟前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠42 分钟前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey9031 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技2 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀2 小时前
Linux环境变量
linux·运维·服务器
zzzsde2 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器
聆风吟º4 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann
NPE~4 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化
神梦流4 小时前
GE 引擎的内存优化终局:静态生命周期分析指导下的内存分配与复用策略
linux·运维·服务器