Jenkins 是业界领先的开源自动化服务器,用于实现持续集成与持续交付(CI/CD)。本教程将覆盖 安装部署、核心功能配置、避坑指南,助你快速掌握企业级自动化流水线搭建!
一、Jenkins 安装(全平台指南)
1. Linux 系统(Ubuntu 为例)
bash
# 添加 Jenkins 仓库
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io-2023.key | sudo apt-key add -
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 openjdk-17-jdk jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins
2. Windows 系统
- 下载 Windows 安装包:
https://www.jenkins.io/download/ - 双击安装包 → 选择安装路径 → 自动安装为 Windows 服务
3. Docker 部署(推荐生产环境)
bash
docker run -d \
--name jenkins \
-p 8080:8080 -p 50000:50000 \
-v jenkins_home:/var/jenkins_home \
jenkins/jenkins:lts-jdk17
二、初始化配置(关键步骤!)
-
解锁 Jenkins
访问
http://localhost:8080
→ 输入初始密码(路径见页面提示):bashsudo cat /var/lib/jenkins/secrets/initialAdminPassword # Linux
-
安装推荐插件
选择 Install suggested plugins(自动安装 Git、Pipeline 等核心插件)
-
创建管理员账户
切勿跳过! 设置用户名、密码、邮箱(如 admin/Admin@123)
三、必学核心功能演示
1. 创建第一个流水线任务
-
首页 → 新建任务 → 输入任务名 → 选择 Pipeline
-
Pipeline 配置 :
- 定义 Pipeline 脚本(直接写入或从 SCM 拉取)
groovypipeline { agent any stages { stage('Build') { steps { echo '正在编译...' sh 'mvn clean package' # Maven 项目示例 } } stage('Test') { steps { echo '正在运行测试...' junit '**/target/surefire-reports/*.xml' # 单元测试报告 } } } }
2. 集成 GitHub 仓库
- 任务配置 → 源码管理 → 选择 Git
- Repository URL:
https://github.com/your/repo.git
- 添加凭证(GitHub 账号或 Access Token)
- Repository URL:
- 构建触发器 → 勾选 GitHub hook trigger for GITScm polling
3. 邮件通知配置
-
系统管理 → 系统配置
-
配置 SMTP 服务器(以 QQ 邮箱为例):
邮件协议:SMTP SMTP 服务器:smtp.qq.com 端口:465 勾选 SSL 用户名:[email protected] 密码:QQ 邮箱授权码(非登录密码)
-
-
任务配置 → 构建后操作 → 添加 Editable Email Notification
四、新手必看:避坑指南
1. 权限管理混乱
- 风险:所有用户默认拥有全部权限
- 解决 :
- 安装 Role-based Authorization Strategy 插件
- 系统管理 → 全局安全配置 → 授权策略选择 Role-Based Strategy
- 创建角色(如 Developer 只允许构建任务)
2. 未配置备份
- 风险:服务器故障导致配置丢失
- 解决 :
- 安装 ThinBackup 插件
- 系统管理 → ThinBackup → 设置定时备份到云存储/NFS
3. 安全漏洞
- 风险:默认 HTTP 协议 + 弱密码
- 解决 :
- 配置 HTTPS(Nginx 反向代理 + Let's Encrypt 证书)
- 系统管理 → 全局安全配置 → 启用 CSRF Protection
4. 资源耗尽
- 现象:Jenkins 响应缓慢
- 解决 :
- 系统管理 → 节点管理 → 添加 Agent 分担负载
- 限制并行构建数:任务配置 → General → 勾选 Do not allow concurrent builds
五、企业级最佳实践
1. Pipeline as Code
-
将 Jenkinsfile 存入代码仓库,实现版本控制
-
示例 Jenkinsfile:
groovypipeline { agent { label 'docker' } environment { VERSION = '1.0.0' } stages { stage('Build') { steps { sh 'docker build -t app:$VERSION .' } } stage('Deploy') { when { branch 'main' } steps { sh 'kubectl apply -f k8s/deployment.yaml' } } } }
2. Blue Ocean 可视化
- 安装 Blue Ocean 插件 → 全新 UI 直观管理流水线
- 支持可视化编辑 Pipeline、实时日志跟踪
3. 与 Kubernetes 集成
- 安装 Kubernetes 插件
- 系统管理 → 节点管理 → 添加 Kubernetes 云
- 填写 K8s API 地址和凭证
- 动态创建 Pod 执行构建任务
六、总结
通过本教程,你已经掌握:
✅ 多平台安装 Jenkins
✅ 核心流水线配置 (GitHub 集成、邮件通知)
✅ 企业级安全与优化策略
✅ 高级特性(Pipeline as Code、K8s 集成)
下一步学习路线:
- 探索 Jenkins 共享库 实现代码复用
- 结合 SonarQube 实现代码质量扫描
- 使用 Ansible/Terraform 完善 DevOps 工具链
遇到问题可查阅 Jenkins 官方文档 或加入 Jenkins 中文社区。立即动手实践,打造你的自动化帝国! 🚀