Linux 系统下 Jenkins 的安装与配置指南
Jenkins 作为一款开源的持续集成与持续交付(CI/CD)工具,凭借其强大的扩展性和丰富的插件生态,已成为开发团队自动化流程的首选,本文将详细介绍在 Linux 系统中安装 Jenkins 的完整步骤,包括环境准备、安装过程、服务配置及常见问题解决,帮助读者快速搭建自动化部署环境。

环境准备
在安装 Jenkins 之前,需确保 Linux 系统满足基本要求,以 Ubuntu/Debian 系统为例,推荐使用 64 位操作系统,版本建议为 18.04 或更高,由于 Jenkins 依赖 Java 运行环境,需提前安装 OpenJDK 11 或更高版本,可通过以下命令更新系统并安装 Java:
sudo apt update && sudo apt upgrade -y sudo apt install -y openjdk-11-jdk
安装完成后,验证 Java 版本:
java -version
若显示 Java 版本信息,则环境准备就绪,建议关闭防火墙或开放 8080 端口(Jenkins 默认端口),避免访问限制。
Jenkins 安装方式
Linux 系统中安装 Jenkins 主要有三种方式:通过包管理器安装、使用 Docker 镜像部署或手动下载 WAR 包运行,本文以最常用的包管理器安装为例,兼顾稳定性和便捷性。
-
添加 Jenkins 官方源
导入 Jenkins 的 GPG 密钥以确保包的完整性:wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
随后,将 Jenkins 仓库添加到 APT 源列表:
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
-
安装 Jenkins
更新包列表后,执行安装命令:sudo apt update sudo apt install -y jenkins
安装过程中,Jenkins 将作为系统服务自动启动,可通过以下命令检查服务状态:

sudo systemctl status jenkins
若显示“active (running)”,则表示安装成功。
初始化配置
安装完成后,需完成初始化设置才能访问 Jenkins 界面。
-
解锁 Jenkins
打开浏览器,访问http://<服务器IP>:8080,页面将提示输入初始解锁密码,密码默认存储在以下文件中:sudo cat /var/lib/jenkins/secrets/initialAdminPassword
复制密码并粘贴到浏览器页面,进入插件安装界面。
-
安装推荐插件
Jenkins 提供了“推荐插件”和“选择插件”两种安装模式,新手建议选择“推荐插件”,包含 Git、Maven、Pipeline 筸常用工具的集成插件,等待插件安装完成,根据提示创建管理员账户,完成初始化配置。
服务优化与安全加固
为保障 Jenkins 的稳定运行和安全性,需进行以下优化:
-
修改默认端口
若 8080 端口与其他服务冲突,可编辑配置文件修改端口:sudo nano /etc/default/jenkins
找到
HTTP_PORT=8080,修改为其他未被占用的端口(如 8090),保存后重启服务:
sudo systemctl restart jenkins
-
配置防火墙规则
若使用 UFW 防火墙,需开放 Jenkins 端口:sudo ufw allow 8080 sudo ufw reload
-
定期备份
Jenkins 的配置文件和任务数据存储在/var/lib/jenkins目录下,建议定期备份该目录,或使用插件实现自动化备份。
常见问题解决
-
启动失败
检查 Java 版本是否兼容,或查看日志文件排查错误:sudo journalctl -u jenkins
-
插件安装失败
可能是网络问题,可尝试更换镜像源或手动下载插件上传至/var/lib/jenkins/plugins目录。 -
内存不足
若处理大型项目时出现内存溢出,可编辑 Jenkins 配置文件(/etc/default/jenkins),增加 JVM 内存参数:JAVA_OPTS="-Xmx2048m -Xms1024m"
通过以上步骤,读者已成功在 Linux 系统中部署 Jenkins 并完成基础配置,作为 CI/CD 的核心工具,Jenkins 可与 Git、Docker、Kubernetes 等工具深度集成,实现代码编译、测试、部署的全流程自动化,后续可根据实际需求,通过插件扩展功能,逐步构建高效的持续集成体系,提升开发团队的交付效率。
















