3、Jenkins基础配置:系统管理、全局工具配置、凭据管理、节点管理
好,咱们接着往下走。上一章我们把 Jenkins 装起来了,也看到了那个熟悉的欢迎页。但说实话,刚装好的 Jenkins 就像一台没装操作系统的电脑——能亮,但啥也干不了。
这一章,我就带你把这台「裸机」武装起来。我会从系统管理讲起,再到工具链配置、凭据管理,最后聊聊节点管理。这些都是我每天在流水线里摸爬滚打的基础功。
3.1 系统管理:Jenkins 的「控制面板」
点开左侧的「系统管理」,你会看到一大串配置项。别慌,咱们挑几个最常用的说。
3.1.1 系统配置
这里主要管 Jenkins 自己的「身体状态」。比如 Jenkins URL、系统管理员邮箱、全局属性这些。
Jenkins URL 一定要填对。我遇到过好几次,因为 URL 写成了 localhost,结果其他节点连不上主节点,白白排查了半天。
系统管理员邮箱 也很关键。构建失败时,Jenkins 会发邮件通知你。嗯,这个邮箱最好用公司的企业邮箱,别用个人邮箱,否则容易被当成垃圾邮件拦截。
3.1.2 全局安全配置
安全这块,我建议你一开始就重视起来。Jenkins 默认的安全策略其实挺松的,生产环境绝对不能直接用。
我个人习惯这样配:
- 安全域: 用 Jenkins 自己的用户数据库,或者 LDAP。小团队用前者就够了,大团队建议上 LDAP。
- 授权策略: 选「登录用户可以做任何事」?别!选「基于项目的矩阵授权策略」,精细控制每个用户的权限。
- CSRF 保护: 一定要开启。我见过有人关掉它,结果被恶意脚本搞崩了整个 Jenkins。
config.xml,把 <useSecurity>true</useSecurity> 改成 false,重启 Jenkins 就能恢复访问。这是最后的救命稻草。
3.2 全局工具配置:给 Jenkins 装上「工具箱」
Jenkins 本身不包含 JDK、Maven、Git 这些工具。你得告诉它:「嘿,这些工具在哪?」
点开「全局工具配置」,你会看到 JDK、Git、Maven、Gradle、Ant 等选项。说白了,就是给 Jenkins 指个路。
3.2.1 配置 JDK
嵌入式开发离不开 JDK。我一般这样配:
- 别名: 写清楚版本号,比如
JDK11、JDK17。 - 安装方式: 选「自动安装」或者「手动解压」。自动安装省事,但下载慢。我习惯手动解压到
/opt/jdk/下,然后填路径。 - JAVA_HOME: 指向解压后的目录,比如
/opt/jdk/jdk-17.0.2。
避坑指南: 我曾经在配置 JDK 时,直接填了 /usr/bin/java。结果 Jenkins 报错说找不到 tools.jar。后来才发现,必须填 JDK 的根目录,而不是 java 可执行文件的路径。
3.2.2 配置 Git
Git 是流水线的命脉。配置很简单:
- Path to Git executable: 填
git或者/usr/bin/git。 - 自动安装: 如果服务器没装 Git,可以选自动安装。但我建议你手动装,版本可控。
你想想看,如果 Git 没配好,后面所有拉代码的操作都会失败。所以配完后,最好建一个简单的流水线测试一下。
3.2.3 配置 Maven
嵌入式项目里,Maven 用来管理依赖和构建。配置方式和 JDK 类似:
- 别名: 比如
Maven3.9。 - 安装方式: 手动解压到
/opt/maven/。 - MAVEN_HOME: 指向解压目录。
~/.m2/settings.xml 里。
3.3 凭据管理:安全第一
凭据管理,说白了就是存密码、Token、SSH 密钥的地方。Jenkins 不会让你在流水线里明文写密码,而是通过凭据 ID 来引用。
3.3.1 添加凭据
点开「凭据」->「系统」->「全局凭据」->「添加凭据」。你会看到这些类型:
| 类型 | 适用场景 | 我的建议 |
|---|---|---|
| Username with password | Git 仓库、Docker Registry | 适合简单场景,但密码会暴露在 Jenkins 中 |
| SSH Username with private key | SSH 连接远程服务器 | 嵌入式部署常用,安全可靠 |
| Secret text | API Token、密钥 | 适合存储 Token,比如 GitHub Token |
| Certificate | HTTPS 证书 | 企业环境常用 |
ID 字段 很重要。这个 ID 是你在流水线里引用凭据的唯一标识。我习惯用 gitlab-cred、docker-hub-cred 这种命名方式,一看就懂。
cred1,后来项目多了,根本分不清哪个是哪个。
3.3.2 使用凭据
在流水线里,凭据通过 credentialsId 引用。比如:
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git branch: 'main',
url: 'https://gitlab.com/myproject.git',
credentialsId: 'gitlab-cred'
}
}
}
}
看到了吗?密码不会出现在代码里,只引用了一个 ID。这样既安全又方便管理。
3.4 节点管理:让 Jenkins 跑得更远
节点管理,就是让 Jenkins 能在多台机器上执行任务。比如,你可以在 Windows 上编译,在 Linux 上部署,在 ARM 板上测试。
3.4.1 添加节点
点开「系统管理」->「节点管理」->「新建节点」。你会看到:
- 节点名称: 比如
linux-build-node、arm-test-node。 - 远程工作目录: 节点上存放工作空间的路径,比如
/home/jenkins/workspace。 - 启动方式: 选「通过 SSH 启动」或者「通过 Java Web Start 启动」。我推荐 SSH 方式,稳定且可控。
- 主机: 节点的 IP 或域名。
- 凭据: 选择 SSH 凭据,用于连接节点。
我的经验: 添加节点时,一定要先测试连接。Jenkins 会尝试 SSH 到节点,如果失败,会给出具体错误。我遇到过因为 SSH 密钥权限不对导致连接失败的情况,改一下 chmod 600 ~/.ssh/id_rsa 就好了。
3.4.2 节点标签
节点多了,怎么分配任务?用标签。比如:
- 给 Linux 节点打上
linux标签。 - 给 ARM 节点打上
arm标签。 - 给高性能节点打上
high-mem标签。
然后在流水线里指定:
pipeline {
agent { label 'linux && high-mem' }
stages {
stage('Build') {
steps {
echo 'Building on a Linux node with high memory'
}
}
}
}
这样,Jenkins 会自动把任务调度到符合条件的节点上。说白了,就是让合适的机器干合适的活。
3.4.3 节点监控
节点跑着跑着,可能会出问题。我习惯在「节点管理」页面定期查看:
- 在线状态: 绿色表示正常,红色表示离线。
- 磁盘空间: 如果磁盘快满了,构建会失败。
- 执行器数量: 每个节点可以并发跑几个任务。别设太多,否则机器会卡死。
3.5 小结
这一章我们聊了 Jenkins 的四个核心配置:
- 系统管理: 管好 Jenkins 自己的「身体」和「安全」。
- 全局工具配置: 给 Jenkins 装上 JDK、Git、Maven 这些「工具」。
- 凭据管理: 安全地存好密码、Token、SSH 密钥。
- 节点管理: 让 Jenkins 能跑在多台机器上,实现分布式构建。
这些配置看起来琐碎,但每一环都关系到流水线的稳定。我刚开始用 Jenkins 时,总觉得这些配置浪费时间,后来吃过几次亏才明白——基础打牢了,后面才能跑得快。
下一章,咱们开始写第一个流水线。到时候你会看到,这些配置是怎么在实战中发挥作用的。
公众号:蓝海资料掘金营,微信deep3321