清晰易懂的 Jenkins 安装与核心使用教程

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 系统

  1. 下载 Windows 安装包:
    https://www.jenkins.io/download/
  2. 双击安装包 → 选择安装路径 → 自动安装为 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

二、初始化配置(关键步骤!)

  1. 解锁 Jenkins

    访问 http://localhost:8080 → 输入初始密码(路径见页面提示):

    bash 复制代码
    sudo cat /var/lib/jenkins/secrets/initialAdminPassword  # Linux
  2. 安装推荐插件

    选择 Install suggested plugins(自动安装 Git、Pipeline 等核心插件)

  3. 创建管理员账户
    切勿跳过! 设置用户名、密码、邮箱(如 admin/Admin@123)


三、必学核心功能演示

1. 创建第一个流水线任务

  1. 首页 → 新建任务 → 输入任务名 → 选择 Pipeline

  2. Pipeline 配置

    • 定义 Pipeline 脚本(直接写入或从 SCM 拉取)
    groovy 复制代码
    pipeline {
        agent any
        stages {
            stage('Build') {
                steps {
                    echo '正在编译...'
                    sh 'mvn clean package'  # Maven 项目示例
                }
            }
            stage('Test') {
                steps {
                    echo '正在运行测试...'
                    junit '**/target/surefire-reports/*.xml'  # 单元测试报告
                }
            }
        }
    }

2. 集成 GitHub 仓库

  1. 任务配置 → 源码管理 → 选择 Git
    • Repository URL:https://github.com/your/repo.git
    • 添加凭证(GitHub 账号或 Access Token)
  2. 构建触发器 → 勾选 GitHub hook trigger for GITScm polling

3. 邮件通知配置

  1. 系统管理 → 系统配置

    • 配置 SMTP 服务器(以 QQ 邮箱为例):

      复制代码
      邮件协议:SMTP  
      SMTP 服务器:smtp.qq.com  
      端口:465  
      勾选 SSL  
      用户名:[email protected]  
      密码:QQ 邮箱授权码(非登录密码)
  2. 任务配置 → 构建后操作 → 添加 Editable Email Notification


四、新手必看:避坑指南

1. 权限管理混乱

  • 风险:所有用户默认拥有全部权限
  • 解决
    1. 安装 Role-based Authorization Strategy 插件
    2. 系统管理 → 全局安全配置 → 授权策略选择 Role-Based Strategy
    3. 创建角色(如 Developer 只允许构建任务)

2. 未配置备份

  • 风险:服务器故障导致配置丢失
  • 解决
    1. 安装 ThinBackup 插件
    2. 系统管理 → ThinBackup → 设置定时备份到云存储/NFS

3. 安全漏洞

  • 风险:默认 HTTP 协议 + 弱密码
  • 解决
    1. 配置 HTTPS(Nginx 反向代理 + Let's Encrypt 证书)
    2. 系统管理 → 全局安全配置 → 启用 CSRF Protection

4. 资源耗尽

  • 现象:Jenkins 响应缓慢
  • 解决
    1. 系统管理 → 节点管理 → 添加 Agent 分担负载
    2. 限制并行构建数:任务配置 → General → 勾选 Do not allow concurrent builds

五、企业级最佳实践

1. Pipeline as Code

  • 将 Jenkinsfile 存入代码仓库,实现版本控制

  • 示例 Jenkinsfile:

    groovy 复制代码
    pipeline {
        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 集成

  1. 安装 Kubernetes 插件
  2. 系统管理 → 节点管理 → 添加 Kubernetes 云
    • 填写 K8s API 地址和凭证
    • 动态创建 Pod 执行构建任务

六、总结

通过本教程,你已经掌握:

多平台安装 Jenkins

核心流水线配置 (GitHub 集成、邮件通知)

企业级安全与优化策略

高级特性(Pipeline as Code、K8s 集成)

下一步学习路线

  1. 探索 Jenkins 共享库 实现代码复用
  2. 结合 SonarQube 实现代码质量扫描
  3. 使用 Ansible/Terraform 完善 DevOps 工具链

遇到问题可查阅 Jenkins 官方文档 或加入 Jenkins 中文社区。立即动手实践,打造你的自动化帝国! 🚀

相关推荐
Tee xm1 小时前
清晰易懂的跨平台 MySQL 安装与配置教程
linux·windows·mysql·macos·安装
GalaxyPokemon1 小时前
MySQL基础 [一] - Ubuntu版本安装
linux·运维·ubuntu
musk12121 小时前
wsl2 配置ubuntu 固定ip
linux·tcp/ip·ubuntu
柳鲲鹏1 小时前
UBUNTU编译datalink
linux·运维·ubuntu
追随远方1 小时前
Ubuntu 64-bit 交叉编译 FFmpeg(高级用户指南)
linux·ubuntu·ffmpeg
GalaxyPokemon2 小时前
Muduo网络库实现 [七] - Connection模块
linux·服务器·网络
无尽星海max2 小时前
M芯片,能运行普通应用程序的原架构虚拟机
windows·架构
the_nov3 小时前
19.TCP相关实验
linux·服务器·网络·c++·tcp/ip
Y淑滢潇潇4 小时前
RHCSA Linux 系统创建文件
linux·运维·服务器
University of Feriburg4 小时前
4-c语言中的数据类型
linux·c语言·笔记·学习·嵌入式实时数据库·嵌入式软件