3、Jenkins环境搭建:Jenkins安装与配置、插件管理、凭据管理、分布式构建节点配置

好,咱们进入正题。Jenkins 这玩意儿,说白了就是 CI/CD 流水线的「大脑」。我见过不少团队,代码写得挺好,一到了部署环节就手忙脚乱。嗯,Jenkins 就是来解决这个问题的。

这一章,我会带你一步步把 Jenkins 环境搭起来。从安装、配置,到插件和凭据管理,再到分布式节点。你跟着走一遍,基本就能应付日常工作了。

3.1 Jenkins 安装与基础配置

安装 Jenkins 其实不复杂。我个人习惯用 Docker 部署,干净利落,出了问题删了重来也快。当然,生产环境我建议你用包管理器装,更稳定。

方式一:Docker 安装(推荐用于测试/学习)

docker run -d \
  --name jenkins \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  jenkins/jenkins:lts

启动后,访问 http://你的服务器IP:8080。第一次进去,会让你输入一个初始密码。这个密码在哪?

docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

复制出来,粘贴进去就行。

方式二:包管理器安装(推荐用于生产)

以 CentOS 为例:

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 jenkins -y
sudo systemctl start jenkins
sudo systemctl enable jenkins

安装完成后,记得检查一下 Java 环境。Jenkins 依赖 Java 11 或 17。我在项目中遇到过有人装了 Jenkins 但启动不了,最后发现是 Java 版本不对。

注意: 千万别用 Java 8,Jenkins 新版本已经不支持了。你想想看,折腾半天启动不起来,多耽误事。

3.2 插件管理——别什么都装

Jenkins 的强大在于插件生态。但这里有个坑:不要装太多插件

我见过一个团队,为了图方便,把推荐的插件全装了。结果 Jenkins 启动越来越慢,页面加载要半分钟。后来我帮他们清理了一堆用不上的插件,速度立马就上来了。

必装插件清单:

插件名称 用途
Git Plugin 拉取 Git 仓库代码
Pipeline 流水线核心插件
Blue Ocean 可视化流水线界面
Credentials Binding 凭据绑定与管理
Docker Pipeline Docker 构建与发布
Kubernetes CLI 与 K8s 集群交互

安装插件很简单:系统管理 → 插件管理 → 可选插件,搜索名字勾选安装就行。

小技巧: 装完插件记得重启 Jenkins。虽然有些插件支持热加载,但我建议你稳妥一点,重启一下。我曾经图省事没重启,结果流水线跑了一半报错,排查了半天才发现是插件没生效。

3.3 凭据管理——安全第一

凭据管理,说白了就是管理你的「钥匙」。Git 密码、SSH 密钥、Docker 认证……这些东西不能明文写在代码里。

Jenkins 提供了专门的凭据管理功能。位置在:系统管理 → Manage Credentials

支持的凭据类型:

  • Username with password:用户名密码,最常用
  • SSH Username with private key:SSH 密钥对,连接 Git 服务器常用
  • Secret text:API Token 之类的文本密钥
  • Certificate:证书文件

举个例子,你要连接 GitHub 私有仓库:

  1. 在 GitHub 生成一个 Personal Access Token
  2. 在 Jenkins 添加凭据,类型选「Username with password」
  3. Username 填你的 GitHub 用户名,Password 填那个 Token
  4. 在流水线里引用这个凭据 ID 就行

嗯,这里要注意:凭据 ID 要起个好记的名字。我习惯用 github-tokendocker-hub-auth 这种格式,一看就知道是干什么的。

避坑指南: 我曾经把凭据 ID 写成了「123456」,结果三个月后自己都忘了这是哪个平台的密码。后来花了一下午挨个测试……从那以后,我再也不敢偷懒了。

3.4 分布式构建节点配置

单机跑 Jenkins 没问题,但一旦项目多了,构建任务排队,你就知道什么叫「慢如蜗牛」了。

分布式构建节点,就是把构建任务分发到多台机器上执行。Jenkins 主节点负责调度,从节点负责干活。

配置步骤:

  1. 在 Jenkins 主节点:系统管理 → 节点管理 → 新建节点
  2. 填写节点名称,选择「Permanent Agent」
  3. 配置远程工作目录,比如 /home/jenkins/agent
  4. 填写启动方式,一般选「通过 SSH 启动代理」
  5. 输入从节点的 IP、用户名、认证凭据

配置好之后,你可以在节点列表里看到它。状态显示「已同步」,就说明连接成功了。

节点配置示例:

配置项 示例值
名称 build-node-01
远程工作目录 /opt/jenkins/workspace
启动方式 通过 SSH 启动代理
主机 192.168.1.100
凭据 ssh-key-for-jenkins
执行器数量 2
个人经验: 执行器数量别设太大。我见过有人设了 8 个执行器,结果从节点 CPU 直接飙到 100%,构建反而更慢了。一般 2-4 个比较合理,具体看机器配置。

配置好分布式节点后,你可以在流水线里指定用哪个节点:

pipeline {
    agent { label 'build-node-01' }
    stages {
        stage('Build') {
            steps {
                echo '这个任务会在 build-node-01 上执行'
            }
        }
    }
}

如果不指定标签,默认会在主节点上跑。我建议你把主节点只用来调度,构建任务全部分发到从节点。这样主节点轻装上阵,不容易崩。

3.5 小结

好了,这一章的内容就这些。Jenkins 环境搭建,说白了就是三步:装起来、配插件、管好凭据和节点。

你可能会觉得这些操作有点琐碎。但相信我,基础打好了,后面写流水线的时候会特别顺畅。我刚开始做 CI/CD 时,就是因为环境没搭好,后面排查问题花了好几倍的时间。

下一章,咱们开始写真正的流水线脚本。到时候你会觉得,嗯,前面这些准备工作,值了。