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”中:

  1. 点击”新建节点”
  2. 输入节点名称,选择”固定节点”
  3. 配置节点信息:
    • 远程工作目录:从节点上Jenkins的工作文件夹(如/var/jenkins
    • 标签(Labels):给节点打标签(如”java”、“docker”),任务可指定”只在带某标签的节点上运行”
    • 启动方式:常用”通过Java Web启动代理”

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凭据管理统一管理所有认证信息
  • 定期轮换密钥和密码

相关概念链接