Jenkins 安装与简单配置
2026/7/26 8:18:49 网站建设 项目流程

目录

  • 一. 简介
    • 1.1 核心概念
    • 1.2 Pipeline
    • 1.3 常用插件
  • 二. 安装
  • 三. 启动
    • 3.1 `java -jar`的方式 → 临时使用
      • 3.1.1 配置`JENKINS_HOME` 和 `JAVA_HOME`
      • 3.1.2 指定端口号启动
    • 3.2 👍systemctl的方式 → 长期使用
      • 3.2.1 配置JDK环境变量
      • 3.2.2 指定端口号启动

一. 简介

Jenkins是目前最流行的开源持续集成(Continuous Integration,CI)和持续交付/部署(Continuous Delivery/Deployment,CD)工具之一。Jenkins最初的目标是自动化软件构建,现在已经发展成一个功能非常强大的自动化平台,可以自动完成从代码提交到软件部署的整个流程。

简单来说:Jenkins 就是一个自动执行任务的平台,本质上就是:定时或者触发执行脚本。

开发人员修改代码 │ ▼ 提交到 Git │ ▼ Jenkins 检测到代码变化 │ ▼ 自动执行: ↓ 编译 ↓ 单元测试 ↓ 打包 Jar ↓ 上传服务器 ↓ 重启 Spring Boot ↓ 通知部署成功

1.1 核心概念

  • Job(任务)
    • 最基本的概念
    • 一个Job通常用多个stage构成
  • Build(构建)
    • Job 每执行一次,就是一次 Build
    • 每次Build都会保存日志
  • Workspace(工作空间)
    • Pipeline执行过程中,用来存储中间产物的目录
    • apluser@ubuntu22-1:~$ls-l$JENKINS_HOME/workspace/ drwxr-xr-x2apluser apluser4096Jul1814:37 first-job drwxr-xr-x3apluser apluser4096Jul2009:32 second-pipeline@tmp drwxr-xr-x3apluser apluser4096Jul2010:26 third-pipeline@2@tmp drwxr-xr-x3apluser apluser4096Jul2010:36 third-pipeline@tmp apluser@ubuntu22-1:~$
  • Node
    • Master节点
    • Agent节点
    • 一个Master节点对应多个Agent节点
  • Executor
    • 并发执行槽位
    • Executor=4表示同时运行个Job

1.2 Pipeline

🔷Pipeline:把整个 CI/CD 流程用代码描述出来的一种方式。

对比项Declarative PipelineScripted Pipeline
风格声明式Groovy 脚本式
可读性较低
学习难度
灵活性较高非常高
官方推荐✅ 是可用于复杂逻辑

🔷常见的触发方式:

触发方式说明
手动点击在 Web 页面点击Build Now
定时构建使用 Cron 表达式定时执行
Git WebhookGit 仓库推送代码后自动触发
上游任务一个 Job 完成后触发另一个 Job
远程 API通过 URL 或 REST API 触发构建
SCM 轮询定期检查代码仓库是否有变化

1.3 常用插件

插件用途
Git拉取 Git 仓库
Pipeline支持 Jenkinsfile
SSH Agent使用 SSH 密钥连接远程服务器
Credentials管理用户名、密码、SSH Key、Token 等凭据
Maven Integration与 Maven 构建集成
JUnit展示单元测试结果
Blue Ocean更现代化的 Pipeline 可视化界面

二. 安装

针对不同的平台和操作系统,官方提供了多种安装方式,详情请参考官网:

  • https://www.jenkins.io/download/

🔷此处介绍来源于官网的,在Ubuntu平台上的安装方式:

  • 添加软件源
sudowget-O/etc/apt/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io-2026.keyecho"deb [signed-by=/etc/apt/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/"|sudotee/etc/apt/sources.list.d/jenkins.list>/dev/null
  • 安装
sudoaptupdatesudoaptinstalljenkins
  • 确认安装成功
apluser@ubuntu22-1:~$whichjenkins /usr/bin/jenkins apluser@ubuntu22-1:~$ jenkins--version2.568.1 apluser@ubuntu22-1:~$ls-l/usr/share/java/jenkins.war -rw-r--r--1root root101063396Jul1000:43 /usr/share/java/jenkins.war

三. 启动

3.1java -jar的方式 → 临时使用

3.1.1 配置JENKINS_HOMEJAVA_HOME

🔷JENKINS_HOMEJenkins最重要的目录,可以理解为 Jenkins 的数据目录。它保存了几乎所有 Jenkins 的数据,包括:

  • Job 配置
  • Pipeline 配置
  • 插件
  • 凭据(加密保存)
  • 构建历史
  • Workspace(默认情况下)
  • 日志
  • 用户配置

🔷默认位置:

apluser@ubuntu22-1:~$ls-ld/var/lib/jenkins drwxr-xr-x2jenkins jenkins4096Jul1000:43 /var/lib/jenkins
  • 可以根据需求自定义JENKINS_HOMEJAVA_HOME
  • 使用java -jar的方式属于临时测试使用,因此临时在~/.bashrc中进行配置
# 创建jenkins_home文件夹mkdir~/jenkins_home# 配置环境变量, Jenkins运行依赖于Java, 因此也需要配置Java的环境变量nano~/.bashrc# 配置java的环境变量exportJAVA_HOME=/home/apluser/JDK/jdk25# 配置Jenkins的环境变量exportJENKINS_HOME=/home/apluser/jenkins_home# 导出环境变量exportPATH=$JAVA_HOME/bin:$JENKINS_HOME:$PATH# 让环境变量生效source~/.bashrc

3.1.2 指定端口号启动

  • 默认端口号为8080,可以在启动的时候指定端口号
java-jar/usr/share/java/jenkins.war--httpPort=9090
  • 如果通过--httpPort的方式临时指定端口号启动的话,Jenkins会提示反向代理设置错误
    修改下图所示的Jenkins URL中的端口号即可

  • 第一次启动的时候,会要求设置用户和密码,初始的密码会显示在控制台上,如下所示

3.2 👍systemctl的方式 → 长期使用

  • jenkins的service配置文件
  • 不要直接修改,要通过sudo systemctl edit jenkins来修改
apluser@ubuntu22-1:~$ls-l/lib/systemd/system/jenkins.service -rw-r--r--1root root5639Jul1000:43 /lib/systemd/system/jenkins.service
  • 常用的命令
# 启动 Jenkins 服务sudosystemctl start jenkins# 停止当前的 Jenkins 服务sudosystemctl stop jenkins# 编辑 Jenkins 服务sudosystemctl edit jenkins# 重新读取所有 systemd 配置文件, 并不会重启服务sudosystemctl daemon-reload# 重启 Jenkins 服务sudosystemctl restart jenkins# 设置开机自动启动sudosystemctlenablejenkins# 禁止开机自动启动, 不会停止当前已经运行的服务sudosystemctl disable jenkins# 查看是否设置为开机启动sudosystemctl is-enabled jenkins# 查看是否正在运行sudosystemctl is-active jenkins# 查看运行状态sudosystemctl status jenkins# 查看服务内容sudosystemctl show jenkins systemctlcatjenkins# 查看使用的Environment属性内容systemctl show jenkins--property=Environment# 查看用户属性systemctl show jenkins--property=User# 查看启动日志sudojournalctl-ujenkins-b--no-pager-n50

3.2.1 配置JDK环境变量

🔷Jenkins运行依赖于JDK,因此必须配置JDK的环境变量

  • 因为使用systemctl的方式启动Jenkins服务,因此JDK不能在某个用户的~/.bashrc中进行配置
  • 详情请参考这篇博客:Linux Ubuntu中配置安装Java

3.2.2 指定端口号启动

  • 默认的端口号会存储在下面所示的两个路径中
    • /etc/default/jenkins
    • /lib/systemd/system/jenkins.service
  • 这两个文件是配合工作的,但真正起作用的是jenkins.service文件中的 Environment 变量。
apluser@ubuntu22-1:~$ jenkins--version2.568.1 apluser@ubuntu22-1:~$ apluser@ubuntu22-1:~$sudogrepHTTP_PORT /etc/default/jenkinsHTTP_PORT=8080# --httpPort=$HTTP_PORT (default 8080; disable with -1)# --httpsPort=$HTTP_PORTJENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT"apluser@ubuntu22-1:~$ apluser@ubuntu22-1:~$sudogrepJENKINS_PORT /lib/systemd/system/jenkins.serviceEnvironment="JENKINS_PORT=8080"

🔺不推荐修改/lib/systemd/system/jenkins.service,因为:软件升级时,这个文件可能会被覆盖。
👍推荐使用sudo systemctl edit jenkins去修改

  • 执行之后,会出现一个全部都是注释的模板配置文件
  • 将需要修改的内容添加到如下图所示的开头区域
  • 英文注释写的很明白,写到其他地方的话,会被忽略

  • 修改完成之后,会在/etc/systemd/system/目录下,生成一个覆盖默认配置用的jenkins.service.d文件夹和override.conf文件
apluser@ubuntu22-1:~$ls-l/lib/systemd/system/jenkins.service -rw-r--r--1root root5639Jul1000:43 /lib/systemd/system/jenkins.service apluser@ubuntu22-1:~$ apluser@ubuntu22-1:~$ls-l/etc/systemd/system/jenkins.service.d/override.conf -rw-r--r--1root root41Jul2121:09 /etc/systemd/system/jenkins.service.d/override.conf apluser@ubuntu22-1:~$ apluser@ubuntu22-1:~$cat/etc/systemd/system/jenkins.service.d/override.conf[Service]Environment="JENKINS_PORT=8082"apluser@ubuntu22-1:~$
  • 重新启动
# 重新启动apluser@ubuntu22-1:~$sudosystemctl daemon-reload apluser@ubuntu22-1:~$ apluser@ubuntu22-1:~$sudosystemctl restart jenkins# 再次确认apluser@ubuntu22-1:~$ systemctl show jenkins|grepJENKINS_PORTEnvironment=JENKINS_HOME=/var/lib/jenkinsJENKINS_WEBROOT=/var/cache/jenkins/warJAVA_OPTS=-Djava.awt.headless=trueJENKINS_PORT=8082apluser@ubuntu22-1:~$
  • 查看状态

  • 可以看到,端口号已经发生了变化

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询