自动化 CI/CD 从 0 到 1:Jenkins 本地化部署全指南

0 成本搭建企业级 CI/CD 平台!Jenkins 本地化部署与使用全指南(附 Pipeline 配置避坑技巧)

一、Jenkins 本地化部署简介

Jenkins 是一款开源的企业级 CI/CD(持续集成 / 持续部署)平台,核心功能包括:

  1. 自动化 CI/CD 流程:实现代码从提交到部署的全流程自动化,提升开发效率

  2. 插件生态丰富:支持数千款插件,覆盖代码构建、测试、部署、监控等全场景

  3. 多环境适配:支持 Windows、Linux、macOS 等多种系统,适配各类开发环境

  4. 权限管理:细粒度的用户权限控制,保障 CI/CD 流程安全

  5. 分布式构建:支持多节点分布式构建,提升大型项目的构建速度

本地化部署的核心价值:

  • 数据安全:CI/CD 流程数据存储在企业内部服务器,避免数据泄露风险

  • 自定义配置:根据企业需求定制 CI/CD 流程,适配内网开发环境

  • 内网访问:支持团队在内网环境下使用,无需依赖外网

  • 成本控制:完全开源免费,避免使用商业 CI/CD 平台的高额费用

二、环境准备

1. 服务器要求

  • 最低配置:2 核 4G 内存,100G 硬盘(适合小型团队,10-20 人使用)

  • 推荐配置:4 核 8G 内存,500G 硬盘(适合中型团队,50 人以上使用)

  • 操作系统:Ubuntu 20.04+/CentOS 8+/RHEL 8+

  • 网络要求:可以访问外网(用于拉取安装包和插件)

2. 依赖环境准备

  • 安装 JDK(Jenkins 需要 Java 环境支持):
bash 复制代码
# Ubuntu/Debian
sudo apt update && sudo apt install -y openjdk-11-jdk
# CentOS/RHEL
sudo yum install -y java-11-openjdk-devel
  • 验证 JDK 安装:
bash 复制代码
java -version

三、Jenkins 部署步骤

1. 包安装(推荐,适合稳定部署)

Ubuntu/Debian 系统
  1. 安装 Jenkins 仓库配置:
bash 复制代码
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
  1. 安装 Jenkins:
bash 复制代码
sudo apt update && sudo apt install -y jenkins
  1. 启动 Jenkins 服务:
bash 复制代码
sudo systemctl start jenkins
sudo systemctl enable jenkins
CentOS/RHEL 系统
  1. 安装 Jenkins 仓库配置:
bash 复制代码
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-2023.key
  1. 安装 Jenkins:
bash 复制代码
sudo yum install -y jenkins
  1. 启动 Jenkins 服务:
bash 复制代码
sudo systemctl start jenkins
sudo systemctl enable jenkins

2. Docker 部署(适合容器化场景)

  1. 安装 Docker:
bash 复制代码
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl start docker
systemctl enable docker
  1. 拉取 Jenkins 镜像:
bash 复制代码
docker pull jenkins/jenkins:lts
  1. 启动 Jenkins 容器:
bash 复制代码
docker run -d \
  --name jenkins \
  --publish 8080:8080 --publish 50000:50000 \
  --restart always \
  --volume /srv/jenkins/home:/var/jenkins_home \
  jenkins/jenkins:lts

3. 验证部署

等待 5-10 分钟,访问服务器 IP+8080 端口(如http://192.168.1.100:8080),如果能看到 Jenkins 的解锁界面,说明部署成功。

四、Jenkins 初始配置

1. 管理员账号设置

  1. 解锁 Jenkins:根据页面提示,找到初始管理员密码,路径为:
bash 复制代码
# 包安装的Jenkins
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
# Docker部署的Jenkins
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
  1. 输入初始密码,点击【继续】

  2. 选择【安装推荐的插件】,等待插件安装完成

  3. 创建管理员账号,填写用户名、密码、邮箱等信息

2. 插件安装(推荐核心插件)

  1. 进入【系统管理】→【插件管理】

  2. 搜索并安装以下核心插件:

    • Pipeline:用于创建 CI/CD 流水线

    • Git:支持 Git 代码仓库

    • Maven Integration:支持 Maven 项目构建

    • Docker Pipeline:支持 Docker 容器化部署

    • Role-based Authorization Strategy:支持细粒度权限控制

3. 全局工具配置

  1. 进入【系统管理】→【全局工具配置】

  2. 配置 JDK:

    • 点击【新增 JDK】,取消勾选【自动安装】,填写 JDK 安装路径(如/usr/lib/jvm/java-11-openjdk-amd64
  3. 配置 Git:

    • 点击【新增 Git】,填写 Git 安装路径(如/usr/bin/git
  4. 配置 Maven:

    • 点击【新增 Maven】,取消勾选【自动安装】,填写 Maven 安装路径(如/opt/maven

五、Jenkins 核心使用场景

1. 创建第一个 Pipeline 任务

  1. 点击【新建任务】,填写任务名称,选择【Pipeline】,点击【确定】

  2. 在【Pipeline】配置中,选择【Pipeline script】,输入以下示例脚本:

groovy 复制代码
pipeline {
    agent any
    stages {
        stage('拉取代码') {
            steps {
                git url: 'https://github.com/your-username/your-project.git', branch: 'main'
            }
        }
        stage('代码构建') {
            steps {
                sh 'mvn clean package'
            }
        }
        stage('部署应用') {
            steps {
                sh 'java -jar target/your-project.jar &'
            }
        }
    }
}
  1. 点击【保存】,然后点击【立即构建】,查看构建日志

2. 构建自动化 CI/CD 流程

  1. 进入任务配置,在【构建触发器】中选择【GitHub hook trigger for GITScm polling】

  2. 在 GitHub 项目的【Settings】→【Webhooks】中添加 Jenkins 的 Webhook 地址(如http://your-jenkins-url/github-webhook/

  3. 这样当代码提交到 GitHub 时,Jenkins 会自动触发构建

3. 任务权限管理

  1. 进入【系统管理】→【全局安全配置】,选择【Role-Based Strategy】

  2. 进入【系统管理】→【Manage and Assign Roles】

  3. 创建角色并分配权限:

    • 点击【Manage Roles】,创建【Developer】角色,分配【Job】的读取、构建权限

    • 点击【Assign Roles】,将用户分配到对应的角色

六、常见问题与解决方案

1. 部署后无法访问

  • 解决方案:

    1. 检查服务器防火墙是否开放 8080 端口

    2. 检查 Jenkins 服务是否正常运行:sudo systemctl status jenkins

    3. 检查 Jenkins 日志:sudo journalctl -u jenkins

2. 插件安装失败

  • 解决方案:

    1. 更换插件源为国内镜像:进入【系统管理】→【插件管理】→【高级】,修改【升级站点】为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

    2. 手动下载插件,然后上传安装

3. Pipeline 执行失败

  • 解决方案:

    1. 查看 Pipeline 日志,检查错误信息

    2. 确认 Pipeline 脚本语法是否正确

    3. 检查工具配置是否正确(如 JDK、Git、Maven 路径)

4. 内存不足问题

  • 解决方案:

    1. 增加服务器内存

    2. 修改 Jenkins 内存配置:编辑/etc/default/jenkins,修改JAVA_ARGS-Xmx2g -Xms1g

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

七、结尾互动

如果本文对你有帮助,欢迎点赞、收藏、关注!有任何问题欢迎在评论区交流,我会第一时间回复。如果需要 Jenkins 的进阶使用教程或者其他 DevOps 工具的部署指南,也可以在评论区留言告诉我~

相关推荐
postfxj2 小时前
解决其它虚拟机(深信服超融合)系统导出的ovf导入到vmware esxi6.5虚拟机鼠标用不了(不听例唤)的问题
运维·服务器
在路上~~~~2 小时前
EBS AR接口表数据跑【自动开票主程序】报错
运维·oracle·ar
海棠AI实验室2 小时前
OpenClaw 落地指南:在 Windows 本地零基础部署 OpenClaw 与自动化强化学习 (RL) 系统
运维·windows·自动化·openclaw
qq_393060472 小时前
在 WSL2 的 Ubuntu 中安装中文字体
linux·运维·ubuntu
洛菡夕2 小时前
LNMP环境部署
linux·运维
Rsun045512 小时前
Docker部署项目
运维·docker·容器
jnrjian2 小时前
Offending ECDSA key in /home/oracle/.ssh/known_hosts:16
运维·ssh
yqzyy2 小时前
如何安装配置Goland并使用固定公网地址SSH远程连接本地服务器
运维·服务器·ssh