如何让Jenkins Pipeline在局域网本地电脑而非服务器上执行?
解决Jenkins Pipeline在局域网本地电脑执行并开放给服务台操作的方案
一、让Pipeline在目标本地电脑执行
核心是通过Jenkins**代理节点(Agent Node)**将安装任务分发到服务台的更换电脑上,步骤如下:
在目标电脑配置Jenkins代理节点
- 登录Jenkins管理界面,进入「管理Jenkins」→「管理节点与云」
- 点击「新建节点」,输入对应电脑的名称,选择「固定节点」后确认
- 配置节点关键参数:
- 远程工作目录:在目标电脑上指定一个空文件夹(如
C:\JenkinsAgent或/opt/jenkins_agent) - 标签:设置专属标识(比如
desk-install-01),后续Pipeline通过该标签指定运行节点 - 启动方式:优先选「通过Java Web启动代理」,局域网内操作更便捷:
- 保存配置后,点击该节点详情页,复制带密钥的Java启动命令
- 在目标电脑安装与Jenkins服务器兼容的JRE/JDK
- 打开命令提示符/终端,粘贴命令执行,待节点状态变为「在线」即配置完成
- 远程工作目录:在目标电脑上指定一个空文件夹(如
修改Pipeline指定运行节点
在Pipeline脚本开头添加agent配置,确保任务跑在目标代理节点上:pipeline { agent { label 'desk-install-01' } // 对应设置的节点标签 stages { stage('安装应用') { steps { // Windows环境示例:静默安装MSI包 bat 'msiexec /i "//局域网共享路径/app.msi" /quiet' // Linux环境示例:安装Deb包 // sh 'sudo dpkg -i /mnt/share/app.deb' } } } }若需要服务台选择具体电脑,可通过
input步骤动态指定节点:pipeline { agent none stages { stage('选择目标电脑') { steps { script { def targetNode = input( message: '请选择要安装应用的电脑', parameters: [choice(name: 'NodeLabel', choices: ['desk-install-01', 'desk-install-02'], description: '目标电脑标签')] ) node(targetNode) { stage('安装应用') { bat 'msiexec /i "//局域网共享路径/app.msi" /quiet' } } } } } } }
二、开放服务台用户操作权限与触发方式
创建服务台用户组并配置权限
- 进入「管理Jenkins」→「管理用户」→「创建用户」,为服务台成员创建专属账号
- 进入「管理Jenkins」→「配置全局安全」,启用「基于矩阵的安全策略」
- 添加服务台用户组(或单个用户),授予以下必要权限:
- 「Job」权限:读取、构建(按需添加取消构建、创建等权限)
- 「Overall」权限:只读(确保能正常访问Jenkins页面)
简化Pipeline触发流程
- 给Pipeline配置参数化构建(如需用户选择应用版本等信息):进入项目「配置」→「构建触发器」,勾选「此项目是参数化的」,添加对应参数(如下拉选择框)
- 服务台用户登录Jenkins后,直接进入该Pipeline项目,点击「构建」(有参数则先填写)即可触发安装流程
可选:优化操作入口
- 将该Pipeline添加到Jenkins首页的「我的视图」,让服务台用户直接在首页看到并触发
- 安装「Build Monitor Plugin」插件,创建专属监控视图,集中展示Pipeline状态与触发入口
三、关键注意事项
- 确保Jenkins服务器与目标电脑在同一局域网,防火墙开放必要端口(Web启动代理无需额外端口,若用JNLP方式需开放50000端口)
- 代理节点的运行用户需具备安装应用的权限(如Windows管理员权限、Linux sudo权限)
- 安装包建议放在局域网共享目录,避免代理节点重复下载大文件
内容的提问来源于stack exchange,提问作者ThALTAIRPL
相关产品推荐
相关产品推荐

