欢迎来到我的二次元小站~

Jenkins 全面详解

Jenkins 是一款开源的自动化服务器工具,核心定位是 持续集成(CI)/持续部署(CD)平台,支持从代码提交、构建、测试到部署的全流程自动化,广泛应用于软件开发全生命周期管理。
image

一、Jenkins 核心概念与核心特性

1. 核心概念

  • 节点(Node):执行构建任务的服务器(可是本地主机或远程服务器,支持 Windows/Linux/macOS)。
  • 任务(Job):Jenkins 的最小执行单元,可配置构建步骤(如拉取代码、编译、测试、部署)。
  • 流水线(Pipeline):将构建流程以代码形式定义(支持 Groovy 语法),实现“构建即代码(Infrastructure as Code)”,可版本控制、复用性强。
  • 插件(Plugin):Jenkins 核心功能通过插件扩展,支持源码管理(Git/SVN)、构建工具(Maven/Gradle)、部署工具(Docker/K8s)、通知工具(邮件/钉钉)等。
  • 工作空间(Workspace):每个任务的独立工作目录,用于存储代码、构建产物等临时文件。

2. 核心特性

  • 全平台支持:兼容 Windows、Linux、macOS 等主流操作系统。
  • 插件生态丰富:官方插件市场拥有 1000+ 插件,覆盖开发、测试、部署全流程需求。
  • 灵活的流水线能力:支持声明式(简洁易用)和脚本式(灵活定制)流水线,适配复杂构建场景。
  • 分布式构建:可将构建任务分发到多个节点执行,减轻主服务器压力,提升构建效率。
  • 可视化界面:Web 端管理界面直观,支持任务配置、构建日志查看、进度监控等。
  • 集成能力强:与 GitLab、GitHub、Jira、Docker、Kubernetes 等主流工具无缝集成。

二、Jenkins 优势分析

  1. 开源免费:无商业授权费用,降低企业运维成本,社区活跃,问题解决资源丰富。
  2. 高度可定制:通过插件和流水线脚本,可适配各种开发语言(Java、Python、Go 等)和项目类型(Web 应用、移动端、微服务)。
  3. 自动化效率高:一键触发全流程自动化(拉取代码 → 编译 → 单元测试 → 打包 → 部署),减少人工操作失误,缩短交付周期。
  4. 跨平台兼容性:支持 Windows、Linux 等多系统部署,适配团队混合开发环境。
  5. 分布式构建支持:适合大型项目或多团队协作,可横向扩展构建能力。
  6. 成熟稳定:经过多年迭代,稳定性和可靠性得到行业验证,广泛应用于互联网、金融、电商等领域。

三、Jenkins 劣势分析

  1. 学习成本较高:尤其是流水线脚本(Groovy 语法)和复杂插件配置,新手需要一定时间上手。
  2. 运维成本高:需手动维护插件更新、节点管理、权限配置,大型团队需专人负责运维。
  3. 界面较陈旧:Web 界面设计偏传统,相比 GitLab CI、GitHub Actions 等工具的现代化界面,用户体验稍差。
  4. 资源占用较大:Jenkins 主服务基于 Java 开发,运行时占用内存和 CPU 资源较多,低配服务器可能出现卡顿。
  5. 安全性需额外配置:默认配置下存在安全风险(如弱密码、未授权访问),需手动开启权限认证、HTTPS、插件安全审计等。
  6. 复杂场景配置繁琐:多环境部署、多分支管理等场景需大量插件组合和脚本编写,配置门槛较高。

四、Jenkins 跨平台部署指南(Windows + Linux)

前置条件

  • 安装 Java 8 或 Java 11(Jenkins 最新版本推荐 Java 11,兼容性更好)。
  • 网络通畅(需下载 Jenkins 安装包和插件)。

1. Windows 系统部署(以 Windows 10/11 为例)

步骤 1:安装 Java 环境

  1. 下载 JDK 8/11(推荐从 Oracle 官网OpenJDK 下载)。
  2. 安装 JDK 后,配置环境变量:
    • 新建系统变量 JAVA_HOME,值为 JDK 安装路径(如 C:\Program Files\Java\jdk1.8.0_301)。
    • 编辑系统变量 Path,添加 %JAVA_HOME%\bin
  3. 验证:打开命令提示符(CMD),输入 java -version,显示 Java 版本即配置成功。

步骤 2:安装 Jenkins

  1. 下载 Jenkins 安装包:从 Jenkins 官网 下载 Windows 版本(.msi 格式)。
  2. 双击安装包,按向导步骤操作:
    • 默认安装路径:C:\Program Files\Jenkins(可自定义)。
    • 端口配置:默认 8080(若端口被占用,可修改为其他端口如 8081)。
    • 服务账户:默认使用本地系统账户,无需修改。
  3. 安装完成后,Jenkins 会自动启动,并在浏览器打开 http://localhost:8080

步骤 3:初始化 Jenkins

  1. 解锁 Jenkins:根据页面提示,从 C:\Program Files\Jenkins\secrets\initialAdminPassword 文件中获取初始密码,输入后点击“继续”。
  2. 安装插件:
    • 推荐选择“安装推荐的插件”(适合新手,包含 Git、Maven、Pipeline 等常用插件)。
    • 若需自定义插件,可选择“选择插件来安装”,勾选所需插件(如 Docker、钉钉通知等)。
  3. 创建管理员账户:输入用户名、密码、邮箱,完成初始化。
  4. 访问 Jenkins:登录后即可进入 Jenkins 主界面,开始配置任务。

步骤 4:Windows 下 Jenkins 常用操作

  • 启动/停止服务:控制面板 → 管理工具 → 服务 → 找到“Jenkins”,右键选择启动/停止。
  • 修改端口:编辑 C:\Program Files\Jenkins\jenkins.xml,找到 <arguments> 中的 --httpPort=8080,修改为目标端口(如 8081),重启服务生效。

2. Linux 系统部署(以 CentOS 7/8 为例,Ubuntu 类似)

步骤 1:安装 Java 环境

  1. 安装 OpenJDK 11(推荐,兼容性稳定):
    # CentOS 7/8
    yum install -y java-11-openjdk-devel
    
    # Ubuntu
    apt update && apt install -y openjdk-11-jdk
    
  2. 验证 Java 版本:
    java -version  # 显示 openjdk version "11.0.x" 即成功
    

步骤 2:安装 Jenkins

  1. 添加 Jenkins 官方仓库密钥:
    curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | gpg --dearmor -o /etc/pki/rpm-gpg/RPM-GPG-KEY-jenkins
    
  2. 添加 Jenkins 仓库到系统:
    # CentOS 7
    wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/debian-stable/jenkins.io-2023.repo
    
    # CentOS 8
    dnf config-manager --add-repo https://pkg.jenkins.io/debian-stable/jenkins.io-2023.repo
    
  3. 安装 Jenkins:
    # CentOS 7
    yum install -y jenkins
    
    # CentOS 8
    dnf install -y jenkins
    
  4. 启动 Jenkins 服务并设置开机自启:
    # 启动服务
    systemctl start jenkins
    
    # 设置开机自启
    systemctl enable jenkins
    
    # 查看服务状态(确保显示 active (running))
    systemctl status jenkins
    
  5. 开放 Jenkins 端口(默认 8080):
    # CentOS 7/8 防火墙开放 8080 端口
    firewall-cmd --permanent --add-port=8080/tcp
    firewall-cmd --reload
    
    # 若关闭防火墙(不推荐生产环境)
    systemctl stop firewalld
    systemctl disable firewalld
    

步骤 3:初始化 Jenkins

  1. 解锁 Jenkins:
    • 从服务器获取初始密码:
      cat /var/lib/jenkins/secrets/initialAdminPassword
      
    • 在本地浏览器访问 http://Linux服务器IP:8080,输入初始密码,点击“继续”。
  2. 安装插件:同 Windows 步骤,选择“安装推荐的插件”或自定义插件。
  3. 创建管理员账户,完成初始化。

步骤 4:Linux 下 Jenkins 常用操作

  • 启动/停止/重启服务:
    systemctl start jenkins   # 启动
    systemctl stop jenkins    # 停止
    systemctl restart jenkins # 重启
    
  • 修改端口:
    1. 编辑 Jenkins 配置文件:
      vi /etc/sysconfig/jenkins
      
    2. 找到 JENKINS_PORT="8080",修改为目标端口(如 8081),保存退出。
    3. 重启 Jenkins 服务:systemctl restart jenkins
  • 查看 Jenkins 日志(排查问题用):
    journalctl -u jenkins -f
    

五、Jenkins 基础使用示例(创建第一个构建任务)

目标:从 Git 拉取代码,用 Maven 编译 Java 项目

  1. 安装必要插件:登录 Jenkins → 系统管理 → 插件管理 → 安装“Git Plugin”和“Maven Integration Plugin”,重启 Jenkins。
  2. 配置 Maven:系统管理 → 全局工具配置 → 找到“Maven”,点击“新增 Maven”,输入名称(如 Maven 3.8),勾选“自动安装”,选择版本,保存。
  3. 创建任务:
    • 点击 Jenkins 主界面“新建任务”,输入任务名称(如 demo-project),选择“自由风格的软件项目”,点击“确定”。
    • 源码管理:选择“Git”,输入代码仓库 URL(如 https://github.com/xxx/demo-project.git),配置分支(如 */main)。
    • 构建步骤:点击“增加构建步骤”,选择“调用顶层 Maven 目标”,选择配置好的 Maven 版本,目标输入 clean package(清理并打包)。
    • 保存任务。
  4. 执行构建:点击任务名称 → “立即构建”,可在“控制台输出”中查看构建日志,构建成功后,在工作空间的 target 目录下可找到打包后的 JAR/WAR 文件。

六、总结

Jenkins 是 CI/CD 领域的经典工具,凭借强大的定制性、丰富的插件生态和跨平台支持,成为中小型团队和复杂项目的首选。

posted @ 2025-11-24 14:14  bcgbsh  阅读(50)  评论(0)    收藏  举报