Jenkins自动化部署实战:从零搭建稳定CI/CD流水线

这类自动化部署方案最值得先看的不是功能列表,而是能不能在你自己的开发环境里稳定跑起来,并且能清晰地拆解成“代码提交 -> 自动构建 -> 自动测试 -> 自动部署”这几个可验证的环节。很多人一上来就照着教程配,结果卡在权限、路径、依赖或者触发条件上,折腾半天也跑不通。我更建议把第一次搭建拆成三步:先把 Jenkins、Maven、Git 这三个核心工具的单体环境配通,再让它们能互相调用,最后才是配置完整的流水线。下面按实际落地顺序拆一遍,重点不是“全”,而是“稳”和“可排查”。

1. 先别急着配流水线,把三个独立工具的环境跑通

自动化部署听起来复杂,但核心就是 Jenkins 作为调度中心,调用 Maven 去编译你的 Java 项目,而代码来源是 Git 仓库。所以第一步不是直接写 Jenkinsfile,而是确保每个工具在单独使用时都是正常的。

1.1 准备一台干净的 Linux 服务器作为基础环境

我一般会选一台 CentOS 7 或 Ubuntu 20.04 的服务器,配置不用太高,2核4G就足够学习和测试。生产环境根据项目复杂度再升级。关键是要有稳定的网络,并且能通过 SSH 连接。

首先,更新系统并安装基础依赖:

# CentOS 7
sudo yum update -y
sudo yum install -y wget curl vim git java-11-openjdk-devel

# Ubuntu 20.04
sudo apt update
sudo apt install -y wget curl vim git openjdk-11-jdk

这里装的是 OpenJDK 11,因为目前大部分 Java 项目对 JDK 11 兼容性最好。装完后用 java -version 验证一下。

1.2 独立安装并验证 Git 和 Maven

Git 通常系统自带,但版本可能旧,可以升级或直接用默认的。重点是要配置好 SSH 密钥,因为 Jenkins 拉取私有仓库需要它。

# 生成 SSH 密钥(如果还没有)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 将公钥添加到你的 Git 仓库托管平台(如 GitHub, GitLab, Gitee)
cat ~/.ssh/id_rsa.pub

把输出的公钥内容复制到你的 Git 平台账户的 SSH Keys 设置里。然后用 ssh -T git@github.com 测试连接是否成功(以 GitHub 为例)。

接着安装 Maven。不要用系统包管理器里可能过时的版本,直接去官网下载。

wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
tar -xzf apache-maven-3.8.6-bin.tar.gz -C /opt/
sudo ln -s /opt/apache-maven-3.8.6 /opt/maven

配置环境变量,编辑 ~/.bashrc /etc/profile

export MAVEN_HOME=/opt/maven
export PATH=$MAVEN_HOME/bin:$PATH

然后 source ~/.bashrc 并执行 mvn -v ,看到版本信息说明安装成功。

关键验证点 :此时,你应该能手动完成“克隆代码 -> Maven 编译”这个过程。找一个你的 Java 项目(或 Spring Boot 初始化项目)测试:

git clone <你的项目git地址>
cd <项目目录>
mvn clean package -DskipTests

如果能在 target 目录下看到生成的 .jar .war 包,说明 Git 和 Maven 的基础链路是通的。这一步很多人跳过,后面 Jenkins 报错时根本分不清是代码问题还是工具问题。

1.3 用最稳妥的方式安装 Jenkins

Jenkins 的安装方式很多,但我更推荐用官方仓库安装,便于后续升级和管理。以 CentOS 7 为例:

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.key
sudo yum install -y jenkins

安装后不要急着启动。先修改 Jenkins 的运行用户和端口(如果需要)。默认 Jenkins 用 jenkins 用户运行,但它的家目录可能没有你的 SSH 密钥。有两种思路:

  1. 将你的公钥私钥复制到 /var/lib/jenkins/.ssh/ 下,并确保权限正确(私钥 600,目录 700)。
  2. 或者,修改 Jenkins 以你的当前用户运行(适合测试环境)。修改 /etc/sysconfig/jenkins 中的 JENKINS_USER

我通常选第一种,更符合生产环境的权限隔离原则。配置好密钥后,启动 Jenkins:

sudo systemctl start jenkins
sudo systemctl enable jenkins
sudo systemctl status jenkins # 查看状态

访问 http://你的服务器IP:8080 。首次启动会要求输入初始管理员密码,密码在 /var/lib/jenkins/secrets/initialAdminPassword 。安装推荐插件,创建管理员账户。

到这里,三个工具都独立可用了。 如果卡在任何一个环节,就先停下来解决,不要带着问题进入下一步。

2. 让 Jenkins 能调用 Maven 和 Git:配置与凭据管理

Jenkins 界面能打开只是第一步,它现在还是个“光杆司令”,不知道 Maven 在哪,也没有权限拉你的代码。这一步就是给 Jenkins 装配“手脚”。

2.1 全局工具配置:告诉 Jenkins Maven 和 JDK 的路径

在 Jenkins 管理后台,进入 “系统管理” -> “全局工具配置”

  1. JDK :如果系统已安装,可以取消勾选“自动安装”,在 JAVA_HOME 里填写路径(如 /usr/lib/jvm/java-11-openjdk )。用 which java readlink -f 可以找到准确路径。更稳妥的方法是让 Jenkins 自动安装,选择 JDK 11 版本,提供 Oracle 或 OpenJDK 的下载镜像。
  2. Git :一般 Jenkins 插件会自动探测到系统 Git 路径。如果没找到,取消
「LLM那些事」系列第 4 篇《上下文窗口的边界》,文章连接:https://blog.csdn.net/houwenjin/article/details/163999753。 演示什么:在「预测」Sheet 的黄色格子里输入一句话(默认「来泡一杯」),四个「模型」——分别只统计最后 1 / 2 / 3 / 4 个字的 n-gram 查表——同时预测下一个字。同一个输入,看的上下文越长,候选越少、预测越确定: ┌────────────────┬──────────┬───────────────┬──────┐ │ 只看最后几个字 │ 用的前缀 │ 候选下一字数 │ 预测 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 1 个 │ 杯 │ 3(茶/子/水) │ 模糊 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 2 个 │ 一杯 │ 2(茶/水) │ 收窄 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 3 个 │ 泡一杯 │ 1(茶) │ 确定 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 4 个 │ 来泡一杯 │ 1(茶) │ 确定 │ └────────────────┴──────────┴───────────────┴──────┘
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值