news 2026/6/25 4:42:37

【Jenkins从入门到精通:全面指南与实战教程】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Jenkins从入门到精通:全面指南与实战教程】

下面这篇文章会带你一步步了解Jenkins,从基本概念到实际应用,帮助你快速上手这款强大的自动化工具。

1. Jenkins是什么?

Jenkins是一款开源的自动化服务器,广泛用于实现持续集成(CI)和持续交付(CD)。它由Kohsuke Kawaguchi在2004年创建,采用Java语言开发,能够帮助开发团队自动化构建、测试和部署软件,从而提高开发效率、减少人工错误并加快软件交付速度。

作为现代软件开发流程中的核心工具,Jenkins通过丰富的插件生态系统支持与各种版本控制系统、构建工具和部署平台的无缝集成。无论是小型项目还是大型企业级应用,Jenkins都能提供灵活可靠的自动化解决方案。

2. Jenkins的核心特性与优势

Jenkins之所以成为最流行的CI/CD工具,主要归功于其多项核心优势:

  • 开源免费:Jenkins是开源软件,可以自由使用和修改,降低了企业成本

  • 插件化架构:拥有超过千款插件,可以与Git、Docker、Kubernetes等主流工具无缝集成

  • 跨平台支持:可在Linux、Windows和macOS等主流操作系统上运行

  • 分布式构建:支持在多台机器上分布式执行构建任务,加速CI/CD流程

  • 易于扩展:通过插件和Pipeline脚本,可以轻松定制和扩展功能

3. 安装Jenkins:详细步骤指南

3.1 环境准备

在安装Jenkins之前,需要确保系统已安装Java环境。Jenkins通常需要Java 8或11版本。

Ubuntu/Debian系统安装Java:

sudo apt update sudo apt install openjdk-11-jdk

CentOS/RHEL系统安装Java:

sudo yum install java-11-openjdk-devel

验证Java安装是否成功:java -version

3.2 安装Jenkins

以下是主流操作系统的Jenkins安装方法:

Ubuntu/Debian系统:

# 添加Jenkins仓库密钥 wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - # 添加Jenkins软件源 sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' # 安装Jenkins sudo apt update sudo apt install jenkins

CentOS/RHEL系统:

# 添加Jenkins仓库 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key # 安装Jenkins sudo yum install jenkins

Windows系统:从Jenkins官网下载MSI安装包,按向导完成安装。

3.3 启动Jenkins服务

安装完成后,需要启动Jenkins服务:

Linux系统:

sudo systemctl start jenkins sudo systemctl enable jenkins # 设置开机自启 sudo systemctl status jenkins # 检查服务状态

Windows系统:Jenkins会自动作为Windows服务启动。

3.4 防火墙配置

如果系统启用了防火墙,需要开放Jenkins的默认端口(8081):

sudo ufw allow 8081

3.5 用docker安装Jenkins

1. 环境准备

在开始之前,请确保你的机器上已经安装了 Docker。如果尚未安装,可以参考 Docker 官方文档进行安装:Docker安装指南

2. 拉取 Jenkins 官方 Docker 镜像

Jenkins 官方提供了适用于 Docker 的镜像,我们可以直接从 Docker Hub 拉取该镜像。打开终端并执行以下命令:

这里的jenkins/jenkins:lts是 Jenkins 的长期支持(LTS)版本,通常是最稳定的版本。

拉取镜像
docker pull jenkinsci/blueocean

建议使用的Docker映像是jenkinsci/blueoceanimage
(来自 the Docker Hub repository
)。 该镜像包含当前的长期支持 (LTS) 的Jenkins版本
(可以投入使用) ,捆绑了所有Blue Ocean
插件和功能。这意味着你不需要单独安装Blue Ocean插件。

或者

docker pull jenkins/jenkins:latest
查看镜像
docker images

安装jenkins
创建工作目录
cd /var/lib mkdir -p /var/lib/jenkins
配置权限

查看jenkins当前权限

ls -nd jenkins/

配置jenkins权限

chmod 777 jenkins/
创建Jenkins容器

cd 到根目录

cd ~

安装并启动 jenkins 容器

docker run -itd -p 8081:8080 -p 10241:50000 --name jenkins --privileged=true -v /var/lib/jenkins:/var/jenkins_home --restart=always jenkins/jenkins:latest

-it:开启输入功能并连接伪终端

-d:后台运行容器

–name:为容器指定一个名称

-p:端口映射,格式为主机(宿主)端口:容器端口,可在application.yaml配置。

-p 8081:8080 将镜像的8080 端口映射到服务器的8081端口。

-p 10241:50000 将镜像的50000端口映射到服务器的10241端口

-v:工作目录映射。形式为:-v 宿主机路径,后者不能修改。

–restart:建议设置为always,在 Docker 启动的时候自动启动 Halo 容器。

端口映射
# 查看防火墙状态 systemctl status firewalld # 启动防火墙 systemctl start firewalld # 开启8081端口 firewall-cmd --zone=public --add-port=8081/tcp --permanent # 开启10241端口 firewall-cmd --zone=public --add-port=10241/tcp --permanent # 重启防火墙才能生效 systemctl restart firewalld # 或者重新启动防火墙 firewall-cmd --reload # 查看已经开放的端口 firewall-cmd --list-ports # 关闭防火墙命令: systemctl stop firewalld # 查看防火墙状态 sudo ufw status # 安装防火墙 sudo sudo apt-get install ufw # 启动防火墙 sudo ufw enable # 开启8081端口 sudo ufw allow 8081 # 开启10241端口 sudo ufw allow 10241 # 开启完成,需要重启防火墙生效 sudo ufw reload # 查看端口信息 sudo ufw status # 关闭防火墙命令: sudo ufw disable
查看jenkins是否启动

jenkins 进程

ps -ef | grep jenkins

查看启动日志

docker logs jenkins
配置镜像加速
cd /var/lib/jenkins/

修改hudson.model.UpdateCenter.xml里的内容

vim hudson.model.UpdateCenter.xml

修改前

<?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://updates.jenkins.io/update-center.json</url> </site> </sites>

将 url 修改为 清华大学官方镜像:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

修改后

<?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url> </site> </sites>

4. 初始配置与设置

4.1 解锁Jenkins

首次访问Jenkins(通过http://服务器IP:8081),需要输入初始管理员密码。密码位于服务器上的特定文件中:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

4.2 插件安装

解锁后,Jenkins会提示安装插件。建议先更换国内镜像源以提高下载速度。

更换镜像源方法:

  1. 修改/var/lib/jenkins/hudson.model.UpdateCenter.xml文件

  2. 将URL改为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

  3. 重启Jenkins服务:sudo systemctl restart jenkins

然后选择"安装推荐插件"或根据需要自定义安装常用插件。

后续安装插件如下:

4.3 创建管理员用户

插件安装完成后,创建管理员账户并配置实例URL,完成初始设置。

5. 创建和配置第一个Jenkins任务

5.1 新建任务

在Jenkins主界面,点击"新建任务",选择"自由风格项目",输入任务名称。

5.2 配置源码管理

在"源代码管理"部分,选择Git并配置仓库地址。如需认证,在"凭据"中添加Git用户名和密码或SSH密钥。

5.3 配置构建触发器

常见的构建触发器包括:

  • 定时构建:使用Cron表达式定期执行构建

  • 轮询SCM:定期检查代码仓库变化

  • GitHub webhook:代码推送到仓库时自动触发构建

5.4 配置构建步骤

根据项目类型添加构建步骤。例如,对于Maven项目:

mvn clean install

对于Node.js项目:

npm install npm test

5.5 构建后操作

配置构建完成后的操作,如:

  • 归档构件:保存构建产物(JAR、WAR文件等)

  • 发送通知:通过邮件或Slack发送构建结果

  • 部署应用:自动部署到测试或生产环境

6. 使用Pipeline实现高级CI/CD

Jenkins Pipeline允许通过代码定义整个CI/CD流程,更加灵活和强大。

6.1 创建Pipeline项目

新建任务时选择"流水线",在Pipeline部分定义脚本。以下是一个简单示例:

pipeline { agent any stages { stage('Checkout') { steps { git 'https://github.com/yourusername/yourrepository.git' } } stage('Build') { steps { sh 'mvn clean install' } } stage('Test') { steps { sh 'mvn test' } } stage('Deploy') { steps { sh 'scp target/*.jar user@yourserver:/path/to/deploy' } } } }

这个Pipeline定义了四个阶段:代码检出、构建、测试和部署。

7. 管理与维护Jenkins

7.1 插件管理

通过"系统管理" > "插件管理"安装和管理插件。常用插件包括:

  • Git Plugin:Git版本控制集成

  • Docker Plugin:在容器中执行构建任务

  • Pipeline Plugin:支持Pipeline功能

  • Role-based Authorization Strategy:角色权限管理

7.2 安全性配置

  • 配置用户权限和访问控制

  • 使用"凭据管理"安全存储密码和密钥

  • 定期更新Jenkins和插件以确保安全

7.3 备份与恢复

定期备份JENKINS_HOME目录(默认在/var/lib/jenkins),包含所有配置、任务和插件数据。可使用ThinBackup等插件实现自动备份。

8. 常见问题与解决方案

  1. 端口冲突:修改/etc/sysconfig/jenkins中的HTTP_PORT变量,更改默认端口

  2. 插件安装失败:检查网络连接,或更换国内镜像源

  3. 权限问题:确保Jenkins用户有访问相关文件和目录的权限

  4. Java环境问题:确保JAVA_HOME环境变量正确配置

9. 总结

Jenkins作为功能强大的自动化服务器,能够显著提升软件开发和交付的效率。通过本文的指导,您可以完成从安装到配置的整个过程,并创建自己的自动化流水线。

随着对Jenkins的深入了解,您可以探索更多高级功能,如分布式构建与Docker和Kubernetes集成以及复杂的Pipeline设计,进一步优化您的CI/CD流程。

无论您是开发人员、测试工程师还是DevOps专家,掌握Jenkins都将为您的职业发展带来显著优势,帮助您构建更可靠、高效的软件交付流程。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/19 9:29:49

学霸同款10个一键生成论文工具,研究生高效写作必备!

学霸同款10个一键生成论文工具&#xff0c;研究生高效写作必备&#xff01; AI 工具如何助力论文写作&#xff0c;提升效率与质量 在研究生阶段&#xff0c;论文写作是一项不可避免的任务&#xff0c;而随着人工智能技术的不断进步&#xff0c;AI 工具已经成为许多学生的得力…

作者头像 李华
网站建设 2026/6/15 18:19:00

一个月内面了30家公司,薪资从18K变成28K,真行啊····

工作3年&#xff0c;换了好几份工作&#xff08;行业流行性大&#xff09;&#xff0c;每次工作都是裸辞。朋友都觉得不可思议。因为我一直对自己很有信心&#xff0c;而且特别不喜欢请假面试&#xff0c;对自己负责也对公司负责。 但是这次没想到市场环境非常不好&#xff0c;…

作者头像 李华
网站建设 2026/6/14 15:35:55

Device (P2P0)下的子节点Device (S7F0)不存在

Device (P2P0)下的子节点Device (S7F0)不存在dsdt.dsl:6096: Device (P2P0) dsdt.dsl:6306: Device (S1F0) dsdt.dsl:6338: Device (S2F0) dsdt.dsl:6370: Device (S3F0) dsdt.dsl:6402: Device (S4F0…

作者头像 李华
网站建设 2026/6/22 7:01:52

OFFSET动态可视化:WPS表格灵活提取多行多列数据

一、问题的提出 日常工作中经常需要从结构化报表中查询并提取特定公司的多期数据。例如&#xff1a;在月度销售报表中&#xff0c;根据公司名称动态返回其1-6月的详细数据。这种需求常见于经营分析、数据看板及报告生成等场景。 假设有一张公司月度数据表&#xff0c;A列为公司…

作者头像 李华