Jenkins代理节点配置
外观
简介[编辑 | 编辑源代码]
Jenkins代理节点(也称为Agent或Slave)是一种分布式构建架构的关键组件,允许任务在多个机器上并行执行。主节点(Master)负责调度任务,而代理节点(Worker)负责实际执行构建作业。通过配置代理节点,可以:
- 横向扩展构建能力
- 隔离不同环境(如操作系统、工具链)
- 优化资源利用率
代理节点类型[编辑 | 编辑源代码]
Jenkins支持多种代理节点类型,包括:
- 永久代理:长期运行的静态节点(如物理服务器或虚拟机)
- 临时代理:动态创建的节点(如Docker容器或云实例)
- 云代理:通过插件(如Kubernetes、AWS EC2)自动扩缩容
配置步骤[编辑 | 编辑源代码]
1. 添加新节点[编辑 | 编辑源代码]
1. 登录Jenkins主控台,导航至 **Manage Jenkins > Manage Nodes and Clouds > New Node** 2. 输入节点名称(如`linux-agent-01`),选择 **Permanent Agent** 3. 配置以下参数:
* 远程工作目录:代理节点的构建目录(如`/home/jenkins/agent`) * 标签:标识节点的特性(如`linux,docker`) * 启动方式:选择连接协议(SSH、JNLP等)
2. 设置连接方式[编辑 | 编辑源代码]
SSH连接示例[编辑 | 编辑源代码]
```xml <slave>
<name>linux-agent-01</name> <remoteFS>/home/jenkins/agent</remoteFS> <launcher class="hudson.plugins.sshslaves.SSHLauncher"> <host>192.168.1.100</host> <port>22</port> <credentialsId>ssh-key-id</credentialsId> </launcher>
</slave> ```
JNLP连接示例[编辑 | 编辑源代码]
通过Java Web Start启动代理: ```bash java -jar agent.jar -jnlpUrl http://jenkins-server:8080/computer/agent-name/slave-agent.jnlp -secret @secret-file ```
3. 验证节点状态[编辑 | 编辑源代码]
节点状态显示为 **Idle** 或 **Busy** 即表示配置成功。
实际案例[编辑 | 编辑源代码]
场景:跨平台构建[编辑 | 编辑源代码]
- 需求:在Linux上编译C++项目,同时在Windows上运行单元测试
- 配置:
* 节点A(标签:`linux,gcc`):执行编译任务 * 节点B(标签:`windows,visualstudio`):运行测试
流水线示例[编辑 | 编辑源代码]
```groovy pipeline {
agent none stages { stage('Build') { agent { label 'linux,gcc' } steps { sh 'make -j4' } } stage('Test') { agent { label 'windows,visualstudio' } steps { bat 'run_tests.exe' } } }
} ```
高级配置[编辑 | 编辑源代码]
资源限制[编辑 | 编辑源代码]
通过`jenkins.model.Jenkins#clouds`配置动态资源: ```xml <numExecutors>2</numExecutors> <mode>EXCLUSIVE</mode> ```
节点监控[编辑 | 编辑源代码]
使用Prometheus插件暴露指标: ```yaml - job_name: 'jenkins_nodes'
metrics_path: '/prometheus' static_configs: - targets: ['jenkins-server:8080']
```
故障排查[编辑 | 编辑源代码]
- 连接失败:检查防火墙、SSH密钥或JNLP端口
- 代理离线:查看日志文件(`/var/log/jenkins/agent.log`)
- 标签不匹配:确保流水线中`agent{ label 'xxx' }`与节点标签一致
性能优化[编辑 | 编辑源代码]
- 使用轻量级代理(如Alpine Linux Docker镜像)
- 为高频任务分配专用节点
- 通过`-Xrs`参数减少JVM开销
扩展阅读[编辑 | 编辑源代码]
- Jenkins官方文档:Distributed builds
- 书籍:《Jenkins 2: Up and Running》