系统管理与全局设置

说实话,很多刚接触Jenkins的同学,一上来就急着建流水线,结果后面各种报错、权限混乱、工具找不到。我个人的习惯是:先把系统管理这块摸透,这才叫「磨刀不误砍柴工」。今天咱们就把系统管理页面、全局安全、全局工具配置、以及日志与系统信息挨个捋一遍。

系统管理页面速览

登录Jenkins后,左侧导航栏最下方有个「系统管理」链接。点进去,你会看到大概二三十个条目。别被吓到,真正日常高频使用的就那几个。我把它分成三大块:

分类 核心功能 我常用来干什么
安全与权限 全局安全配置、凭据管理、用户管理 设置LDAP、管理SSH密钥、分配项目权限
工具与环境 全局工具配置、系统信息、管理插件 配置JDK、Maven、Git路径,看CPU/内存
维护与监控 系统日志、系统信息、管理节点、脚本命令行 排查构建失败、清理磁盘、执行Groovy脚本

嗯,这里要特别提一下:左下角那个「Manage Jenkins」入口,不同版本可能叫法不一样,但核心菜单都一样。

Jenkins 系统管理核心模块 系统管理 全局安全配置 身份认证(LDAP/SSO) 授权策略(矩阵/项目) 全局工具配置 JDK Git Maven/Gradle 系统信息与日志 环境信息 / 系统属性 日志查看 / 下载 💡 实用提示 安全配置不当 → 权限泄露;工具路径配错 → 构建失败 先配工具再建流水线,能省下一半的排查时间

全局安全配置——别等出事了再后悔

这个页面位于「系统管理」->「全局安全配置」。我见过不少团队,Jenkins装好就直接用默认的「登录用户可以做任何事」,结果测试环境直接被删库。嗯,这里要注意,安全策略不是越复杂越好,但起码要做到「最小权限」。

核心配置项:

  • 安全域(Security Realm): 用什么方式验证用户身份。常见选项:Jenkins自带用户数据库、LDAP、GitHub OAuth、SAML。我个人推荐小团队先用「Jenkins自带」,后期再切LDAP。
  • 授权策略(Authorization): 用户可以干什么。建议用「基于项目的矩阵授权策略」,可以精细到每个Job的读/写/运行权限。

小经验: 如果你配了LDAP,记得先在「Manage Users」里检查用户能否登录,别一上来就全改了然后自己被锁外面。我以前干过这种事,最后只能去服务器上改config.xml,折腾了半小时。

全局工具配置——你所有Pipeline的依赖都在这

「系统管理」->「全局工具配置」。这个页面我几乎每天都要看。说白了,这里就是告诉Jenkins:你干活用的JDK、Git、Maven、Gradle、Docker、Node.js……它们装在哪。

JDK 配置

你有两种方式:

  • 自动安装: Jenkins从Oracle/AdoptOpenJDK网站下载。好处是省事,坏处是下载慢、版本受限于Jenkins列表。
  • 手动指定路径: 服务器上已经装了JDK,填JAVA_HOME。我习惯用这种方式,因为生产环境JDK版本固定,不易出幺蛾子。
示例:手动安装JDK11
名称:JDK11
JAVA_HOME:/usr/lib/jvm/java-11-openjdk-amd64
(不要勾选「Install automatically」)

Git 配置

Jenkins默认会使用系统PATH里的git。但你也可以指定一个固定路径。我曾经遇到一个问题:Agent机器上git版本太低,导致pipeline里某些命令不兼容。后来我统一在所有节点装了git 2.30+,然后在全局工具里配好路径,世界清净了。

Maven 配置

建议勾选「自动安装」,指定版本。注意Maven版本要和你的项目兼容。比如Spring Boot 2.x推荐Maven 3.6+。

⚠️ 特别注意: 如果你使用多个Jenkins Agent(节点),每个Agent上都需要有对应的工具。全局工具配置只是定义了「Jenkins知道这些工具」,但实际执行时,Agent上要真的存在该路径或能自动下载。我建议在节点上预先装好常用工具,避免每次构建时自动下载浪费时间。

系统信息与日志——问题排查的钥匙

「系统管理」->「系统信息」,这里展示了Jenkins运行环境的全部细节:操作系统版本、JVM参数、内存、环境变量、系统属性等等。很多奇怪的构建失败,根源出在环境差异上,比如Agent机器的字符集、时区、临时目录权限。

我常用的排查套路:

  1. 构建失败 → 先看「系统日志」。
  2. 如果日志里没有明确错误,去「管理节点」-> 选中该Agent -> 查看「系统信息」对比与Master的差异。
  3. 常见差异:JAVA_HOME不同、PATH缺失某些命令、磁盘空间不足。

快速查看日志命令: 在「系统管理」->「系统日志」里,可以按日志级别过滤。我习惯把「All Jenkins Log」级别调为INFO,如果有报错再看FINE或WARNING。

日志文件在哪里?

默认在 $JENKINS_HOME/logs/ 下。以Tomcat部署为例,位置可能是 /var/lib/jenkins/logs/。文件按日期滚动,保留最近7天(可配置)。你可以直接用tail -f实时跟踪构建问题:

# 在服务器上
tail -f /var/lib/jenkins/logs/jenkins.log

其他实用全局设置

除了上面三大块,还有几个小配置值得一聊:

  • 系统消息(System Message): 在系统管理页面顶部显示一段文字。我用来写「当前运维状态」或「维护公告」,所有用户都能看到。
  • 执行者数量(# of executors): 主节点同时能跑多少个构建任务。默认2,如果你只有一台Jenkins服务器且构建量大,可以调高,但注意CPU/内存压力。
  • SCM 检出重试次数: 当Git拉取代码失败时自动重试。我设置3次,能有效降低网络抖动导致的失败。

关于凭据管理: 虽然本章没展开讲,但你配工具、配Git、配Docker Registry时,全都要用到凭据。建议花10分钟把全局凭据(用户名+密码、SSH私钥、Secret text)梳理一遍,做到每个凭据都有清晰的名字和说明。不然半年后你看着一串凭证不知道是干嘛用的,相信我,这太常见了。

好了,系统管理与全局设置的核心就这些。先配好安全、配好工具、熟悉日志排查方式,后面的Pipeline才能真正跑得顺。不然你想想看,Pipeline里引用了一个JDK11,结果全局工具里压根没配,那还玩什么?