ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Jenkins Web界面入门:从Dashboard到构建任务配置全解析

Jenkins Web界面入门:从Dashboard到构建任务配置全解析 说实话很多人第一次打开 Jenkins 的 Web 界面都会被吓一跳——满屏英文、密密麻麻的菜单、左侧一大列按钮完全不知道从哪点起。我当年装完 Jenkins 之后对着那个 Dashboard 愣了好几分钟心里想的是这东西到底先进在哪后来用熟了才发现这个看起来土里土气的界面其实把 CI/CD 里最核心的几件事都摆在了明面上看构建状态、创建任务、看日志、管插件、配凭据。只要把这个 Web 界面搞明白了Jenkins 基本就算入门一半了。这个教程适合谁就是你刚刚装好 Jenkins、正在浏览器里跟它大眼瞪小眼的阶段。不管是 Windows 还是 Linux 装出来的界面差别不大逻辑是通用的。我会从登录开始把界面上的每个区域掰开揉碎讲一遍再带你看一个实际任务的配置流程。看完你至少不会再出现不知道点哪里的尴尬。1. 整体界面设计与布局逻辑1.1 第一次打开初始化向导与登录验证第一次访问 Jenkins浏览器里输入http://你的服务器IP:8080看到的不是登录框而是一个叫Unlock Jenkins的页面。这一步卡住了不少人因为密码不在界面上而是 Jenkins 启动时自动生成的一串随机字符串。在 Linux 上密码文件在这个位置sudo cat /var/lib/jenkins/secrets/initialAdminPassword在 Windows 上默认路径是C:\ProgramData\Jenkins\.jenkins\secrets\initialAdminPassword找到密码填进去接下来会进入插件安装选择页。这里有两个按钮Install suggested plugins 和 Select plugins to install。我建议第一次玩就选推荐的省时间也比较省心。Customize 那个选项适合你已经明确知道自己要装什么的情况初学者很容易选掉一些后面又需要补装的插件反而麻烦。装完插件之后会让你创建管理员用户自己设一个账号密码。这里要注意这个账号就是日常登录用的并不是系统 root权限范围完全由 Jenkins 自己控制。走到这一步才算真正进入 Jenkins 的主界面。1.2 界面整体结构顶栏、左侧菜单、主内容区真正进了 Dashboard 之后你会看到 Jenkins Web 界面的老三样布局。顶部横条是全局导航左侧是功能菜单中间是主内容区。右侧通常还有一列信息栏不过老版本默认不显示需要点进去具体页面才看得到。左侧菜单从上到下依次是New Item新建任务这是你最常用的入口。People用户列表管理账号时用。Build History所有构建历史记录不管哪个 Job 的构建记录都会汇总到这里。Manage Jenkins系统管理入口相当于 Jenkins 的控制面板。My Views个人视图每个人可以定制自己的任务列表。顶栏上是全局搜索框和登录用户信息还有一个很重要的管理员按钮点进去就是 Manage Jenkins。整个界面其实没有多复杂的交互逻辑Jenkins 的设计哲学就是所有功能都摆出来你自己点。界面的风格这么多年改得不多说实话确实不惊艳但胜在信息密度高。每一个 Job 什么状态、构建队列里排了多少任务、当前有没有执行器空闲扫一眼就一目了然。对于运维和开发同学来说这种功能优先的界面反而比花里胡哨的现代化 UI 更实用。Jenkins 官方后来也出了 Blue Ocean 这种偏现代化的可视化界面插件但底层功能逻辑还是同一套学会了原生界面换什么皮肤都不慌。2. Dashboard 仪表盘核心模块详解2.1 Job 列表与构建状态那些颜色和字母代表什么Dashboard 主页中间的大表格就是整个 Jenkins 的核心信息入口。表格里每一行是一个 Job任务列标题一般是字母图标、任务名称、最后一次成功时间、最后一次失败时间、上一步、整体状态等。先看图标和字母S表示最后一次构建成功SuccessE表示构建失败ErrorF表示有失败的历史记录Failed没字母、只有一个灰色的球表示这个任务从来没执行过再看背景颜色之前很多版本的 Jenkins 用球状图标表示状态——灰色代表从未构建红色代表失败黄色代表不稳定比如测试没全过但构建本身没挂蓝色代表成功绿色代表稳定且成功。这里有个细节值得说字母图标和背景颜色是两套历史遗留的表示方式新版本里两种会同时出现。你不需要记两套只要记住有 S 没 S、红不红就够了。实际用起来任务多的时候你最关心的是我负责的哪个 Job 红了这时候点列头按状态排序比肉眼扫快多了。Job 名称后面有向下的小箭头鼠标悬停会出现一个操作菜单里面有立即构建Build Now、配置Configure、查看历史Blue Ocean 视图等快捷入口。我常用的路径是发现某个 Job 红了点进去看 Console Output而不是停在列表页瞎猜。2.2 构建队列与执行器状态为什么我的任务一直卡着Dashboard 左侧栏下方通常会有两个信息块Build Queue和Build Executor Status。Build Queue 显示当前排队等待执行的任务。如果你看到自己的 Job 一直在队列里不走多半是执行器不够用了。控制执行器数量的地方在 Manage Jenkins → System → # of executors 这个选项里默认是 2意思是同时最多跑 2 个构建任务。Build Executor Status 显示的是每个执行器当前在跑什么任务。维护者最怕的就是有人把执行器数量调得很高然后一堆任务抢资源导致构建全部变慢。这里给个建议刚开始学习阶段保持默认值就行别乱加。如果你发现任务排队严重优先看看是不是有人把构建频率设得太高或者是不是所有任务都挤在同一个节点上。我见过不少团队Jenkins 上挂了十几个任务全部默认触发一到下班时间就排队。排查思路很简单点开 Build Queue 里卡住的任务看它什么时候进的队再对比执行的 Job 耗时就能定位到是调度问题还是资源瓶颈。2.3 周边信息区版本号、系统时间、用户管理入口Dashboard 左下角有一个很不起眼的部分显示 Jenkins 版本号和系统时间。这个版本号在排查问题时非常关键。很多插件在升级/兼容性上有版本要求你发插件兼容性问题的时候别人第一句话就会问你 Jenkins 版本多少所以这个位置的版本号不是摆着看的。People 界面是用户管理的入口页面。点进去能看到所有用户账号包括你初始化时创建的管理员。用户旁边有个小工具图标点进去可以设置邮件地址、改密码等。如果你装了基于角色的权限插件比如 Role-based Strategy实际授权是在 Manage Jenkins 里配置的People 页面只是看人不做授权。经常有人混淆这两个入口管理用户信息在 People管理用户权限在 Manage Jenkins记住这一点后面能少走不少弯路。Dashboard 上还有一个隐藏能力全局搜索框。Jenkins 的搜索不只是搜 Job 名称还支持按配置项、插件名、系统管理入口来搜。比如你想进系统配置直接搜 System 就能跳进去。这个功能在 Job 多到自己都记不清叫啥名字的时候特别救命。3. 从界面操作到一个完整任务落地3.1 新建任务两种常用项目类型的取舍点左侧的 New Item进入新建任务页面。输入任务名称之后下面会出现项目类型列表。这块是新手最容易纠结的地方类型太多了什么 Freestyle project、Pipeline、Multi-configuration project到底选哪个我的建议是如果是纯界面操作入门先选 Freestyle project。它的配置全是表单填空每一项都有注释适合理解概念。等到你理解了构建任务 拉代码 执行命令 收集产物这套逻辑再切到 Pipeline用 Jenkinsfile 把流程写出来。Pipeline 的优势是流程即代码、可以版本化管理但它要求你先对构建过程有个整体认识一上来直接写 Pipeline 很容易因为概念混乱而卡住。还有一种情况是你要构建 Maven 项目可以选择 Freestyle 然后在构建步骤里调用 Maven 命令也可以直接选 Maven project。区别不大本质一样。新手更建议选 Freestyle所见即所得出错了也容易排查。3.2 Freestyle 任务的配置页面详解新建好的 Freestyle 任务点进去 Configuer会看到一长串配置项。这里我挑几个必须理解的说。General常规区域这个区域最重要的是任务名称和描述。这里有一个隐藏要素——Discard old builds丢弃旧构建默认是不丢弃意味着构建产物和历史记录会无限增长磁盘很快被撑爆。我第一次用 Jenkins 就踩过这坑跑了半年之后磁盘告警才发现一堆几 GB 的旧构建包堆在/var/lib/jenkins/jobs里。建议勾选这个选项设置保留天数为 30 天、最大构建数为 50对大部分项目来说足够了。生产环境建议更严格保留 7-14 天即可产物归档另说。往下是Source Code Management源码管理选择 Git 后填写 Repository URL。这里涉及一个新手常见问题仓库地址填了但凭据Credentials那边没有可选项。原因是你还没在 Jenkins 里添加 GitLab 或 GitHub 的访问凭证。解决办法是点 Add选 Jenkins类型选 Username with password填上你 GitLab 账号的密码。如果用的是 SSH 方式就选 SSH Username with private key把私钥粘进去。注意一点现在很多企业 GitLab 已经开启了强制 2FA账号密码方式可能失效这种情况需要用 Personal Access Token 来当密码或者直接用 SSH key。界面上的报错信息经常是 Failed to connect to repository : Error performing git command遇到别慌先看看凭据有没有选对、仓库路径是不是写成了 SSH 格式。Build Triggers构建触发器区域Trigger builds remotely通过 URL 远程触发适合别人写脚本调用。Build after other projects are built任务依赖前一个任务建完自动建后一个。Build periodically定时构建填 cron 表达式比如每天凌晨 2 点构建填0 2 * * *。Poll SCM定期检查代码仓库有没有变化有变化才构建。说实话Poll SCM 这个功能现在不太推荐了因为 GitLab 的 Webhook 集成更实时效率也更高。配置方式是在 GitLab 项目里加 Webhook指向 Jenkins 的接口地址。但界面侧的配置还是要理解面试的时候经常被问到这几个触发方式的区别。Build Environment构建环境这里可以勾选 Delete workspace before build starts构建前清理工作区适合需要干净构建环境的场景不过代价是每次构建都要重新拉全部代码速度会慢。另一个常用的是 Add timestamps to the Console Output给日志加上时间戳排查构建耗时的时候非常有用我强烈建议勾上。Build构建步骤是核心中的核心。在 Freestyle 里点 Add build step选择 Execute shell 或 Invoke top-level Maven targets 等这取决于你项目用的构建工具。以 Java 项目举例最简配置就是mvn clean package -DskipTests如果项目是前后端分离的可以加一步 Node 构建或者在同一个 shell 里把 npm install、npm run build 都写进去。Jenkins 本身不做构建它只是按你的命令执行所以这里本质上是把你本地构建的那套命令搬到服务器上跑。Post-build Actions构建后操作比如自动部署、归档产物、发邮件通知、钉钉通知等。新手至少配一个Archive the artifacts把构建产物保存下来。指定target/*.jar或dist/**就行这样构建结束后能在 Job 页面看到产物下载链接。因为 Jenkins 的构建工作区在服务器上不归档的话下次构建一覆盖前一次的东西就没了。3.3 构建过程的界面怎么看Console Output 是灵魂配置好之后点左侧的 Build Now 立即构建。这时你会看到 Build History 里出现了一个新的数字编号表示这个 Job 的第几次构建比如 #1、#2点击进去。构建详情页中间有个红色圆点构建中会转完成之后变成黄色圆点成功或红色圆点失败。旁边有Console Output链接点击就能看到完整日志。查看日志其实才是排查构建问题的真正入口界面上的状态球只是给你一个成功/失败的结果原因全在日志里。日志默认只显示最近几百行但可以通过 Full log 展开全部。构建失败时很多人习惯从上往下慢慢翻其实更高效的做法是用浏览器的 CtrlF 搜索单词ERROR或FAILED直接定位报错位置然后查看相关上下文。这个习惯帮我节省了大量时间。整个构建过程页面里另一个重要的按钮是窗口右上角的停止按钮。有些构建会因为拉镜像、联网超时卡住很久别傻等直接停。停掉之后记得去排查为什么会卡住常见原因是网络问题、脚本里有 sleep 语句、或者某个服务访问不到导致命令一直重试。4. 系统管理界面与常用配置入口4.1 Manage Jenkins系统配置里的关键选项左侧菜单的 Manage Jenkins 是整个 Jenkins 的控制面板系统管理相关的入口都在这。点进去会看到一排图标按照功能分成几个大块System Configuration系统配置、插件管理、节点管理Security安全设置、凭据管理Status Information系统信息、日志、负载统计Tools and Actions工具配置、数据备份等先看System系统配置页面里面最常改的就是Jenkins URL。你部署 Jenkins 的时候如果用了内网 IP 或域名就要在这里改否则构建通知、Webhook 回调里带的链接都是错的。另一个很重要但容易被忽略的是全局属性Global properties可以在这里定义一些环境变量传递到所有构建任务里。比如全局定义一个SERVER_IP10.0.0.8后面的构建任务脚本里直接用$SERVER_IP一处修改到处生效省去每个任务单独改。还有一个SSH Server配置项在旧版本的 Publish over SSH 插件里有。很多人第一次配的时候找不到入口其实是装完插件之后Manage Jenkins → System 页面才会出现这个区域它是用来远程执行服务器命令做部署的。如果你的部署方式是Jenkins 拿着 SSH 连到应用服务器拷贝文件并执行脚本就需要在这里配置好服务器连接信息和密钥。4.2 插件管理更新中心与离线安装Manage Jenkins → Plugins 是插件管理页面。这个界面分四个 TabUpdates、Available、Installed、Advanced。Updates 里显示哪些插件有新版本可以逐个更新或全选更新。Available 里是当前可安装的插件列表想装什么直接搜索。Installed 是已安装列表可以卸载或降级。Advanced 底下有个Update Site设置这地方是很多人的救星。默认的插件更新中心地址在国外国内网络环境下更新往往很慢甚至超时导致界面上一直提示该 Jenkins 实例似乎已离线或者装插件失败。解决办法是把 Update Site 换到国内镜像源。目前常用的镜像地址是清华源或华为源在 Advanced 里把 URL 替换成镜像地址然后提交再点 Check now 即可。换完之后你会发现插件列表秒开这才是正常体验。还要说一个离线安装的情况。有一些内网环境不允许访问外网此时界面会显示该 Jenkins 实例似乎已离线插件也装不了。最常见的做法是先在能上网的电脑上从镜像源下载需要的.hpi或.jpi插件文件然后在插件管理里的高级Tab 下有一个上传插件区域直接把文件传上去。这种离线方式虽然麻烦点但在隔离环境里很管用。另外提醒一下下载插件时要注意插件之间的依赖关系缺了依赖即使上传了也起不来。4.3 凭据管理Credentials 的界面操作与作用域Manage Jenkins → Credentials 就是凭据管理入口。前面配置 Git 仓库时要求填的 Credentials本质上是 Jenkins 帮你存储的密钥不直接暴露明文。这个界面里最重要的是理解全局凭据Global credentials和文件夹级凭据Folder credentials的区别。全局凭据对所有 Job 可见适合存通用账号比如统一的 GitLab 机器人账号、SSH key。文件夹级凭据只在特定文件夹里的 Job 可见适合多团队共用一台 Jenkins、权限隔离的场景。常见的凭据类型Username with password最常用GitLab 账号密码或 Token。SSH Username with private key存 SSH 私钥用于连服务器。Secret file存文件类型密钥比如某些云厂商的密钥文件。Secret text存一段字符串比如 API Token。有一个容易踩的坑你修改了密码之后旧凭据不会自动更新需要在凭据列表里编辑或删除重建。另外在配置 Job 时如果下拉框里死活看不到刚创建的凭据多半是该凭据的作用域和 Job 所在的位置不匹配或者刷新慢等几秒重新打开配置页就好了。4.4 系统信息与日志老手排障的秘密入口Manage Jenkins 里还有几个不太起眼但很有用的入口。System Information系统信息页面显示的是 Jenkins 运行环境的全部环境变量、系统属性、内存使用情况等。有一次我配置构建脚本时需要知道 Jenkins 进程的用户是谁就在系统信息里直接查到了。这个页面相当于 Jenkins 的注册表很多写死的信息都能在这里查到建议花十分钟翻一遍。Log日志页面比较隐蔽它是排查 Jenkins 自身问题的重要工具。所有日志都在这里有系统日志和插件日志两大类。比如某个插件报错、登录失败、告警提醒都可以在日志里看到详细堆栈。排查思路是出现问题先在系统日志里搜关键字如异常类名一般能找到线索。还有一个Script Console脚本控制台这个是高级玩家用的可以直接在里面执行 Groovy 脚本操作 Jenkins 内部对象。新手不建议乱试搞不好会把系统搞挂。但你要是在网上搜解决方案经常会看到别人贴一段 Groovy 脚本让你去 Script Console 跑知道入口在哪就行。5. 常见问题与排查技巧实录5.1 界面相关高发问题速查表我用表格整理一些在 Jenkins Web 界面使用过程中高发的问题和解决办法都是我自己或身边同事真实踩过的现象常见原因解决办法界面全英文看不懂默认语言是英文安装 Locale 插件在全局配置里设置为 zh_US 或 zh_CN重启后生效提示该 Jenkins 实例似乎已离线更新中心连接不上将 Update Site 换成国内镜像源再 Check now插件安装后界面没变化部分插件需要重启 Jenkins在 Manage Jenkins 里设置安全重启或命令行重启服务立即构建按钮点了没反应权限不足或任务被锁定检查用户是否被 Role 插件限制了任务构建权限构建一直卡在队列里执行器数量不够或任务依赖看 Build Queue必要时手动取消低优先级任务日志全是中文乱码系统编码不匹配在任务构建环境里设置LANGzh_CN.UTF-8或在 JVM 参数中添加编码选项配置界面打开很慢插件过多/内存不足考虑整理插件增加 Jenkins 内存参数找不到 Manage Jenkins 入口用户权限不足使用管理员账户登录或检查角色策略配置5.2 典型案例一界面全英文怎么改成中文这个问题判据率高到离谱。装完 Jenkins 默认是英文的对于英文不好的同学来说确实不友好。正确的姿势是在 Manage Jenkins → Plugins → Available 里搜索Locale插件并安装。安装完成后进入 Manage Jenkins → System 页面翻到最下面找到 Locale 配置区。在 Default Language 里填入zh_CN并勾选 Ignore browser preference and force this language to all users。重启之后界面就变中文了。不过说实话我后来又把界面切回英文了。因为很多插件的文档、报错信息都是英文的如果界面是中文但报错还是英文反而要来回切换理解。我建议学习阶段可以用中文快速理解界面功能熟悉之后切回英文毕竟网上查资料、看官方文档都是英文环境。5.3 典型案例二插件列表打不开、更新卡死插件下载慢或者更新失败属于 Jenkins 在国内使用频率最高的痛点之一。看过太多人因为插件问题直接重装 Jenkins其实大多是更新源的问题。解决办法前面在第 4.2 节里已经说过了。这里补充一个细节镜像 URL 的格式一定要写对否则提交完点 Check now 还会报错。清华源的 Jenkins 更新中心地址是https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json华为源是https://mirrors.huaweicloud.com/jenkins/updates/update-center.json。填写位置是 Manage Jenkins → Plugins → Advanced → Update Site。改完源之后回到 Updates 页面点立即获取或Check now界面会刷新插件列表。如果仍然提示离线检查一下 Jenkins 服务器能不能访问外网不要忽略服务器端代理配置的问题。5.4 典型案例三构建日志中文乱码这个问题在 Linux 上部署 Jenkins 之后很常见。构建脚本里输出中文日志终端里全是???或锟斤拷看着非常头大。本质原因是 Jenkins 进程的默认字符集不是 UTF-8或者脚本里没有指定编码。通用的解决办法是在执行构建命令前加上环境变量export LANGzh_CN.UTF-8 export LC_ALLzh_CN.UTF-8然后执行你的构建命令。如果 Jenkins 是部署在 Windows 上的还要注意命令行工具本身的编码建议在构建脚本开头执行chcp 65001切换到 UTF-8 代码页。还有一种情况是文件本身编码不对比如 XML 或 properties 文件是 GBK 编码的这种情况需要把文件转成 UTF-8或者调整读取文件的代码和 Jenkins 界面本身关系不大。5.5 实战心得几个提高效率的界面操作技巧最后分享几个我日常用得很顺手的界面操作习惯。第一善用备忘录/描述功能。在每个任务页面顶部的描述区我会写清楚这个任务是干嘛的、构建产物在哪、负责人是谁。Jenkins 界面不会自动提醒你但维护久了你会发现描述清楚能省去大量这个任务是啥的沟通成本。第二利用文件夹把任务分组。任务一旦超过 20 个全堆在 Dashboard 上就会很乱。Jenkins 支持创建 Folder 来归类比如按服务名或按团队分。这个入口在 New Item 里选择 Folder 类型。分组之后界面清爽很多权限管理也更方便。第三构建历史页面的筛选功能很好用。Build History 页面顶部有几个快捷筛选可以只显示失败、显示所有、只看最近 N 次。排查问题的时候不用一页页翻直接只看失败的构建就够了。第四别忽略页面底部的REST API链接。每个 Job 页面底部都有 REST API 入口可以省去 UI 交互直接调接口比如触发构建、查看构建信息。对后续写脚本、做自动化很有帮助。界面点久了你会发现 Jenkins 的很多操作其实都有对应的 API只不过界面上都帮你封装好了。写在最后Jenkins 的 Web 界面虽然不漂亮但它的每一个区块都不是摆设背后对应的都是 CI/CD 里的真实需求任务管理、状态监控、日志检索、系统配置、权限控制。把界面摸透你往后学 Pipeline、配自动化部署都会有底子的感觉至少报错的时候你知道去哪看、去哪个页面改配置。我个人带过不少新手发现一个共同规律凡是愿意花时间把 Dashboard 上每个入口都点一遍的人后面学 Jenkins 都特别快。倒是那些急着抄配置但不知道页面逻辑的人遇到点问题就发蒙。所以这个教程看起来内容不多但真心建议你照着界面一个一个点过去点完你就有底气了。下一步建议你挑一个简单的项目从头建一个 Freestyle 任务配一下 Git 拉代码和构建命令跑通一次自动构建。等跑通之后进阶方向是学 Pipeline 语法用 Jenkinsfile 把流程版本化管理起来。到那时你会发现Web 界面依然是你最常待的地方——毕竟绝大多数时候你都是通过它来观察整个自动化流水线的运转情况。
返回列表