欢迎光临
我们一直在努力

【jenkins 自动化部署,保姆级教程】

Jenkins 作为开源的自动化服务器,是 DevOps 核心工具之一,能够实现代码构建、测试、部署的全流程自动化。本文以主流的 Linux 系统(CentOS 7/8、Ubuntu 20.04/22.04)为例,从环境准备、安装部署、基础配置到流水线(Pipeline)构建,手把手带你掌握 Jenkins 的核心使用方法。

一、环境准备

1. 系统要求

  • 操作系统:Linux(CentOS 7+/Ubuntu 20.04+),推荐 2 核 4G 以上配置
  • 依赖:Java(Jenkins 2.357+ 要求 Java 11,推荐 OpenJDK 11)
  • 网络:能访问外网(或配置内网源),开放 8080 端口(Jenkins 默认端口)

2. 安装 Java 环境

Jenkins 基于 Java 开发,必须先安装并配置 Java 环境,以下是 CentOS 和 Ubuntu 的安装方式:

CentOS 系统

# 安装 OpenJDK 11
yum install -y java-11-openjdk java-11-openjdk-devel

# 验证 Java 版本
java -version
# 输出类似:openjdk version "11.0.XX" 即为成功

Ubuntu 系统

# 更新源
apt update

# 安装 OpenJDK 11
apt install -y openjdk-11-jdk openjdk-11-jre

# 验证 Java 版本
java -version

二、Jenkins 安装部署

1. 安装 Jenkins

推荐通过官方源安装,保证版本最新且稳定:

CentOS 系统

# 安装依赖
yum install -y wget

# 添加 Jenkins 官方源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm –import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

# 安装 Jenkins
yum install -y jenkins

# 启动 Jenkins 服务
systemctl start jenkins

# 设置开机自启
systemctl enable jenkins

# 查看服务状态
systemctl status jenkins

Ubuntu 系统

# 安装依赖
apt install -y wget gnupg

# 添加 Jenkins 官方 GPG 密钥
wget -q -O – https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | gpg –dearmor -o /usr/share/keyrings/jenkins-keyring.gpg

# 添加 Jenkins 源
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.gpg] https://pkg.jenkins.io/debian-stable binary/" | tee /etc/apt/sources.list.d/jenkins.list > /dev/null

# 更新源并安装 Jenkins
apt update
apt install -y jenkins

# 启动并设置自启
systemctl start jenkins
systemctl enable jenkins
systemctl status jenkins

2. 防火墙与端口配置

Jenkins 默认监听 8080 端口,需开放端口权限:

CentOS 系统(firewalld)

# 开放 8080 端口
firewall-cmd –add-port=8080/tcp –permanent

# 重载防火墙规则
firewall-cmd –reload

# 查看开放端口
firewall-cmd –list-ports

Ubuntu 系统(ufw)

# 开放 8080 端口
ufw allow 8080/tcp

# 启用防火墙(若未启用)
ufw enable

# 查看规则
ufw status

3. 初始化 Jenkins

步骤 1:访问 Jenkins 页面

在浏览器中输入 http://服务器IP:8080,首次访问会要求输入初始管理员密码。

步骤 2:获取初始密码

方式一:jenkins 启动日志

方式二:执行以下命令获取密码:

cat /var/lib/jenkins/secrets/initialAdminPassword

将输出的一串随机字符复制到页面输入框,点击 “继续”。

步骤 3:安装插件
  • 推荐选择 “安装推荐的插件”,等待插件安装完成(网络慢可配置国内镜像源,见文末优化)。
  • 插件安装完成后,创建第一个管理员用户(输入用户名、密码、邮箱)。
  • 配置 Jenkins URL(默认即可),点击 “开始使用 Jenkins”,完成初始化。

三、Jenkins 流水线(Pipeline)实战

Pipeline 是 Jenkins 的核心特性,通过代码(Jenkinsfile)定义自动化流程,支持持续集成 / 持续部署(CI/CD)。

1. 核心概念

  • Jenkinsfile:定义 Pipeline 的文本文件,支持 Declarative(声明式,推荐)和 Scripted(脚本式)两种语法。
  • Agent:指定流水线运行的节点(如本机 agent any)。
  • Stage:流水线的阶段(如拉取代码、构建、测试、部署)。
  • Step:阶段内的具体操作(如执行 shell 命令、调用插件)。

2. 实战:构建一个 Java 项目的 Pipeline

前提条件
  • 安装 Git 插件(已包含在推荐插件中)。
  • 服务器安装 Git:yum install git(CentOS)/ apt install git(Ubuntu)。
  • 准备一个 Java 项目(如 GitHub/Gitee 上的 Maven 项目)。
步骤 1:创建 Pipeline 任务
  • 点击 Jenkins 首页 “新建任务”,输入任务名称(如 Java-Project-Pipeline)。
  • 选择 “流水线”,点击 “确定”。
  • 步骤 2:配置 Pipeline
  • 在 “流水线” 配置区域,选择 “Pipeline 脚本来自 SCM”(推荐,将 Jenkinsfile 托管到代码仓库),或直接在 “脚本” 框中编写(测试用)。
  • 若选择 SCM:
    • 选择 Git,输入代码仓库地址(如 https://gitee.com/xxx/xxx-project.git)。
    • 配置凭证(私有仓库需添加用户名 / 密码或 SSH 密钥)。
    • 指定分支(如 */main)。
    • 指定 Jenkinsfile 路径(默认 Jenkinsfile,若在仓库根目录可直接使用)。
  • 若直接编写脚本,复制以下声明式 Jenkinsfile 到 “脚本” 框:
  • pipeline {
    // 任意可用节点运行
    agent any

    // 环境变量
    environment {
    // 项目构建目录
    PROJECT_DIR = '/var/jenkins/workspace/Java-Project'
    }

    // 构建触发器(可选:定时构建、代码提交触发)
    triggers {
    // 每分钟检查一次代码更新
    pollSCM('* * * * *')
    }

    // 流水线阶段
    stages {
    stage("Clean Workspace") {
    steps {
    script {
    // 清空当前工作目录
    deleteDir()
    }
    }
    }

    stage('拉取代码') {
    steps {
    echo '开始拉取代码…'
    // 拉取代码(若配置 SCM 则无需此步骤,此处为脚本式示例)
    // git url: 'https://gitee.com/xxx/xxx-java-project.git', branch: 'main'
    sh "git clone https://gitee.com/dromara/payment-spring-boot.git"
    }
    }

    stage('代码构建') {
    steps {
    echo '开始构建项目…'
    // 执行 Maven 构建(需安装 Maven 插件或服务器安装 Maven)
    sh 'cd payment-spring-boot ; mvn clean package -DskipTests'
    }
    }

    stage('部署到测试环境') {
    // 仅在 main 分支执行
    when {
    branch 'main'
    }
    steps {
    echo '部署到测试环境…'
    // 示例:复制 jar 包到测试服务器
    sh 'cp target/*.jar /opt/test-server/'
    // 重启测试服务
    sh 'systemctl restart test-server'
    }
    }
    }

    // 流水线结束后操作
    post {
    success {
    echo '流水线执行成功!'
    }
    failure {
    echo '流水线执行失败!'
    // 可选:发送邮件通知
    mail to: 'admin@example.com',
    subject: 'Pipeline 执行失败',
    body: '项目构建失败,请检查!'
    }
    }
    }

    步骤 3:运行 Pipeline

    点击 “保存” 后,点击 “立即构建”,在任务页面可查看流水线执行进度:

    • 点击 “阶段视图”,直观查看各阶段执行状态。
    • 点击各阶段可查看日志(如构建失败,查看日志定位问题)。

    3. Jenkinsfile 核心语法说明

    语法说明
    agent any 在任意可用节点运行流水线
    stage('名称') 定义阶段
    sh '命令' 执行 shell 命令
    git url: '地址', branch: '分支' 拉取 Git 代码
    environment 定义环境变量
    when 条件判断(如分支、状态)
    post 流水线 / 阶段结束后的操作(成功 / 失败 / 始终)

    四、Jenkins 优化与常见问题

    1. 配置国内插件镜像源(解决插件安装慢)

    修改 Jenkins 插件源为清华大学镜像:

    # 进入 Jenkins 插件配置目录
    cd /var/lib/jenkins/updates

    # 备份原配置
    sed -i 's#https://updates.jenkins.io/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' default.json
    sed -i 's#http://www.google.com#https://www.baidu.com#g' default.json

    # 重启 Jenkins
    systemctl restart jenkins

    或者:

    Advanced settings地址改为:https://mirrors.huaweicloud.com/jenkins/updates/update-center.json

    2. 常见问题解决

    • Jenkins 启动失败:检查 Java 版本是否符合要求(Jenkins 2.357+ 需 Java 11),查看日志:journalctl -u jenkins。
    • 插件安装失败:配置国内镜像源,或手动下载插件(hpi 文件)上传到 /var/lib/jenkins/plugins 目录,重启 Jenkins。
    • Pipeline 拉取代码失败:检查 Git 地址、凭证是否正确,服务器能否访问代码仓库(ping github.com 测试)。
    • Maven 构建失败:安装 Maven(yum install maven),或配置 Maven 国内镜像(修改 settings.xml)。

    五、总结

    本文从 Linux 环境下 Jenkins 的安装部署入手,完成了初始化配置,并通过实战案例讲解了 Pipeline 流水线的构建流程。Jenkins 的核心价值在于自动化,通过 Pipeline 可灵活定义 CI/CD 流程,适配不同语言(Java、Python、Go 等)和场景(前端构建、后端部署、容器化发布等)。

    后续可进一步学习:

    • 配置 Jenkins 节点(分布式构建)。
    • 集成 Docker 实现容器化部署。
    • 结合 Kubernetes 实现动态节点调度。
    • 使用 WebHook 实现代码提交自动触发构建。

    希望本文能帮助你快速上手 Jenkins,打造高效的自动化研发流程!

    赞(0)
    未经允许不得转载:171主机测评 » 【jenkins 自动化部署,保姆级教程】
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址