当前位置: 首页 > news >正文

在Linux系统中安装Jenkins(保姆级别)

0、前言

尽管网络上有大量 Jenkins 安装教程,但多数存在 “不够详细” 或 “依赖 Docker、K8s 等复杂环境” 的问题 —— 对于刚接触 Jenkins 的新手而言,额外学习容器或编排工具会显著增加入门成本。因此,本文将完全采用 “原始方式”(即直接基于操作系统环境安装),从环境准备到 Jenkins 部署、再到基础美化,全程 step-by-step 讲解,确保新手能零门槛上手。

一、简介

官网:https://www.jenkins.io

中文文档:Jenkins

Jenkins 是一个开源的持续集成(CI)工具,用于自动化构建、测试和部署软件项目。它提供了一个易于使用和可扩展的平台,帮助团队更高效地开发和交付软件。

二、安装前准备

笔者建议安装 JDK-21,直接下载2.49以上的 Jenkins,要不然插件安装会比较麻烦,真的很麻烦!!!!而且最终还是以失败告终,所以避免大家走弯路,直接按照我的版本来

前提是要安装JDK-21和Maven,先安装JDK再安装Maven,跟着教程走很简单的,不要被劝退,有问题可以直接在评论区发出来

在Linux系统下安装JDK21:

在Linux系统下安装JDK21(保姆级别)-CSDN博客

在Linux环境安装Maven:

在Linux环境安装Maven(保姆级别)-CSDN博客

Linux 上安装 Jenkins 非常简单,如果只是为了学习没必要非得使用 docker,和在 Windows 上用 war 包进行安装差不多,因为 war 是跨平台的,只需要系统上安装了 Java ,均可以 java -jar 的命令运行起来

三、下载与安装

进入 Jenkins 的 官方下载页面

LTS 是长期支持的版本,是稳定的版本

在下载安装包之前要先确定应该下载哪个版本的 JenkinsJenkins 的版本依赖于 Java 的版本,可在 Jenkins-Java Support Policy 中进行查看

如果与笔者版本选择一样的话,就跟着下面我选的版本

下载完成之后就把该 war 包上传至服务器

这里我会先在服务器上创建一个 /soft/jenkins 的文件夹用于存放 jenkins 的安装包,并进入到该目录下

mkdir -p /soft/jenkins
cd /soft/jenkins/

使用 rz 命令将下载好的安装包上传到该目录下

rz

可以用 ls 命令查看是否上传成功

上传成功之后就可以直接用 java -jar 命令启动起来,可以通过 httpPort 来指定端口号

java -jar jenkins.war --httpPort=8080

如果出现了这样的问题,那么直接yum install fontconfig就可以了

在执行就可以不报错了,如果没报错的话就不需要执行下面的命令了

java -jar jenkins.war --httpPort=8080

首次启动会比较慢,因为需要初始化和存放一些文件到 .jenkins 的目录下

在启动过程中会打印出 管理员账户密码

这个时候就可以去游览器上访问下 ip:portip 是服务器的 ip 地址,port 是启动 jenkins 的端口,比如:192.163.10.12:8080 ,如果你用的是 云服务器,可别忘了在云服务器上开放该端口号

在游览器上展示页面如下,就可以进行初始化了

管理员账户密码 复制到对应的地方,点击 继续

这里建议点击 选择插件来安装,在点击 ,不安装任何插件,再点击 安装,因为我们没有配置镜像,安装插件是从外网下载
过来的,会比较慢,并且下载的插件可能会出现不兼容等状况,导致失败率很高

进入到创建管理员页面,填写账户信息后 保存并完成

进入以下页面配置 jenkinsurl ,一般使用默认的就行了,保存并完成

初始化完成

点开始用页面

四、配置镜像地址

之前启动 Jenkins 时会打印出管理员账户密码所在文件,例如:/root/.jenkins/secrets/initialAdminPassword,/root/.jenkins 就是 jenkins 的工作目录,在 jenkins 的工作目录 .jenkins 中,找到 hudson.model.UpdateCenter.xml 文件打开

将 https://updates.jenkins.io/update-center.json 替换成国内镜像网址并 保存

国内镜像网址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

国外镜像网址:https://mirror.xmission.com/jenkins/updates/update-center.json

sed -i 's#https://updates.jenkins.io/update-center.json#https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json#g' hudson.model.UpdateCenter.xml 

再进入到 updates 目录下,编辑 default.json 文件,将该文件中国外的地址全部替换成国内的

 cd updates/ls

  • https://www.google.com 全部替换成 https://www.baidu.com
sed -i 's#https://www.google.com#https://www.baidu.com#g' default.json
  • https://updates.jenkins.io/download 全部替换成 https://mirrors.tuna.tsinghua.edu.cn/jenkins
 sed -i 's#https://updates.jenkins.io/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' default.json 

五、启动与关闭

1. 启动

前文是有用到 java -jar 的命令启动了 Jenkins,这里简单总结以下:

  • 前台启动
#特点:当前ssh窗口被锁定,可按 CTRL+C 打断程序运行,或直接关闭窗口,程序退出
java -jar jenkins.war --httpPort=8080#特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行
java -jar jenkins.war --httpPort=8080 & 
  • 后台启动
# nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
# 当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到 nohup.out 的文件中
nohup java -jar jenkins.war --httpPort=8080 &# 这种方法会把日志文件输入到你指定的文件 jenkins.log 中,没有则会自动创建
nohup java -jar jenkins.war --httpPort=8080 >jenkins.log &

如果用的是云服务器,直接后台启动就行了,即使关闭终端,程序依然可以运行

2. 关闭

可以先查询 Jenkins 的进程

ps -ef | grep jenkins

然后再通过 kill 命令来关闭程序

# 彻底杀死进程号为 pid 的进程
kill -9 pid

六、常用插件的安装

Jenkins 相当于一个平台,它很多的功能都是通过对应的插件去实现的,所以插件安装对于使用 Jenkins 非常的重要

Jenkins 中常用的插件如下:

在 Jenkins 中常用的插件如下:

Folders

OWASP Markup Formatter

Build Timeout

Credentials Binding

Timestamper

Workspace Cleanup

Ant

Gradle

Pipeline

GitHub Branch Source

Pipeline:GitHub Groovy Libraries

Pipeline:Stage View

Git

SSH Build Agents

Matrix Authorization Strategy

PAM Authentication

LDAP

Email Extension

Mailer

Dark Theme

Localization: Chinese (Simplified)

完美撒花~

http://www.xdnf.cn/news/1418239.html

相关文章:

  • Java:Could not resolve all files for configuration
  • Day42 Grad-CAM与Hook函数
  • UniApp + SignalR + Asp.net Core 做一个聊天IM,含emoji 表情包
  • 【Docker】Docker容器和镜像管理常用命令
  • 【2025ICCV】Vision Transformers 最新研究成果
  • 无题250901
  • GaussDB 集群故障cm_ctl: can‘t connect to cm_server
  • .Net程序员就业现状以及学习路线图(二)
  • oracle默认事务隔离级别
  • Windows神器,按键屏蔽
  • 深入理解 HTTP 与 HTTPS:区别以及 HTTPS 加密原理
  • 【 VPX638】基于KU115 FPGA+C6678 DSP的6U VPX双FMC接口通用信号处理平台
  • 配送算法19 Two Fast Heuristics for Online Order Dispatching
  • Objective-C 的坚毅与传承:在Swift时代下的不可替代性优雅草卓伊凡
  • Java面试宝典:Redis高并发高可用(主从复制、哨兵)
  • 【算法基础】链表
  • PowerPoint和WPS演示如何在放映PPT时用鼠标划重点
  • 趣味学RUST基础篇(String)
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(二十二)控件的可见、可用性
  • 如何从 STiROT 启动 STiROT_Appli_TrustZone LAT1556
  • JS闭包讲解
  • Elasticsearch面试精讲 Day 4:集群发现与节点角色
  • 《JAVA EE企业级应用开发》第一课笔记
  • 记录第一次使用docker打包镜像的操作步骤以及问题解决
  • 初识JVM
  • Personality Test 2025
  • 正则表达式与grep文本过滤详解
  • 【C++游记】AVL树
  • 刷题日记0901
  • (3dnr)多帧视频图像去噪 (二)