说明
Jenkins 也有类似 Nginx 那一套,Master 节点、Worker 节点
官方推荐是 Master 节点不干活,只做统一协调与调度,Worker 节点负责执行具体的构建任务
本文介绍如何配置 Worker 节点
配置
在控制台,系统设置中,点击 节点与云管理

可以看到目前就一个 Master 节点,也就是 Jenkins 服务器本身。点击右侧的 New Node,新增一个节点

设置名称,windows 表示该节点是 windows 环境,可用于在 windows 环境完成构建的项目

设置一波,保存

这就新增完成了

启动
节点如何和 Jenkins 服务器建立连接呢?点击该节点,执行相应的命令,下载 Jar 包并指定参数运行

如下,我上面展示的 IP 地址末位不对,需要手动改一下,大家也注意一下,这个 IP 就是 Jenkins 服务器的 IP
注:因为 VMware 虚拟机的 IP 不固定,Jenkins 部署那时可能是 192.168.101.10

回到 Jenkins,可见该节点已在线,磁盘信息也同步过来了

使用
需要注意的是,使用某个节点执行构建任务,使用的环境或者工具都是该节点的,不是 Jenkins 服务器的
像下面这个项目,完成构建所需的环境是 Git(拉代码)、Maven(编译打包)
也就是说,指定上面新增的 windows 节点完成上面这个项目的构建任务,该节点必须要有这两个工具,如下

下面创建任务,以上面这个 Github 仓库为例,写流水线脚本,注意 agent { label 'windows' } 指定用 windows 节点打包
powershell
pipeline {
agent { label 'windows' }
stages {
stage('拉取代码') {
steps {
retry(6) {
checkout([
$class: 'GitSCM',
branches: [[name: 'main']],
gitTool: 'git-windows',
userRemoteConfigs: [[url: 'https://github.com/HeZhongYing/mysql-registry-demo.git']]
])
}
}
}
stage('构建打包') {
steps {
bat 'mvn -B clean package -DskipTests'
}
}
}
post {
always {
archiveArtifacts artifacts: '*-service/target/*-SNAPSHOT.jar', fingerprint: true
}
}
}
构建试一波

可以看到是这个 windows 节点在干活

构建完成

看下构建产生的数据存储在 windows 节点配置的目录,如果上面的流水线脚本有后续传 Jar 包到部署服务器上的步骤,也应该是从当前节点传输到那台服务器,而不是从 Jenkins 服务器传(Jenkins 服务器上连产物都没有,怎么传),或者先从 windows 节点传给 Jenkins 服务器,Jenkins 服务器再传到指定的部署节点上

另外
新增 Linux 节点也是类似的流程