Jenkins节点管理
梗概(20%核心概念)
Jenkins节点是执行构建、测试、部署等任务的服务器资源,是实现分布式构建的核心概念。简单说,节点就是”干活的机器”,可以是物理机、虚拟机或容器。
节点分类
- 主节点(Master Node):安装Jenkins服务的服务器,负责管理任务、调度节点、处理用户界面请求
- 从节点(Slave Node/Agent Node):额外配置的用于分担任务的服务器,由主节点管理和调度
核心作用
- 任务分发:主节点将任务分配给合适的从节点执行,提高效率
- 环境隔离:不同项目可用不同的运行环境(如Java 8 vs Java 11)
- 负载均衡:避免单个服务器因任务过多而卡顿
详细配置与实践(80%深入内容)
从节点代理(Agent)
Agent是运行在从节点上的轻量程序,作为连接主节点和接收、执行任务的”桥梁”。
从节点配置步骤
1. 主节点配置
在主节点的”Manage Jenkins → Manage Nodes and Clouds”中:
- 点击”新建节点”
- 输入节点名称,选择”固定节点”
- 配置节点信息:
- 远程工作目录:从节点上Jenkins的工作文件夹(如
/var/jenkins) - 标签(Labels):给节点打标签(如”java”、“docker”),任务可指定”只在带某标签的节点上运行”
- 启动方式:常用”通过Java Web启动代理”
- 远程工作目录:从节点上Jenkins的工作文件夹(如
2. 启动方式详解
自动化启动方式(推荐):
- SSH启动:主节点通过SSH自动连接从节点并启动代理
- Windows服务启动:在Windows从节点上配置Jenkins代理服务
- 优势:只需配置连接信息(SSH凭证、服务路径),主节点会自动下载并启动代理程序(agent.jar)
手动启动方式:
- 从节点手动下载agent.jar并运行连接命令
- 适用于临时测试或特殊网络环境
在Pipeline中使用节点
指定具体节点
pipeline {
agent { label 'nodejs' } // 在标签为 nodejs 的从节点上执行
// ...
}任务级别指定
在任务配置中,通过”限制项目运行的节点”:
- 输入节点名称(如”slave-01”):任务只能在该节点执行
- 输入标签(如”docker”):任务会在所有带”docker”标签的节点中选择一个执行
安全与凭据管理
Jenkins凭据功能用于安全存储密码、密钥、令牌等敏感信息(如Git仓库密码、服务器SSH密钥、API令牌)。
凭据类型
- 用户名密码:用于SSH连接、仓库认证
- SSH密钥:用于无密码SSH连接
- Secret text:用于API令牌等纯文本密钥
- Certificate:用于SSL证书认证
最佳实践
- 在自动化流程中避免硬编码敏感信息
- 通过Jenkins凭据管理统一管理所有认证信息
- 定期轮换密钥和密码
相关概念链接
- parent::Jenkins Pipeline详解
- parent::CI_CD
- related::Jenkins K8s部署实例