CentOS 上搭建 Jenkins 集群的实用步骤
一 架构与准备
- 架构模式:采用 Master–Agent(主从) 分布式构建。Master 负责调度与界面管理,Agent 负责实际构建;Agent 节点无需安装完整 Jenkins,仅安装 JDK 与项目所需工具(如 Git、Maven、.NET SDK 等)。Master 与 Agent 之间需网络互通。为提升可用性与扩展性,可在前端放置 Nginx/HAProxy 做负载均衡与健康检查。Jenkins 2.x 建议使用 Java 11/17/21。防火墙需放行 8080(Web)与 50000(JNLP/agent 通信)端口。
二 安装与初始化 Master
- 在线 YUM 安装(推荐)
- 安装 JDK(以 Java 11 为例):
yum install -y java-11-openjdk-devel
- 导入 Jenkins 官方仓库并安装:
yum install -y jenkins
- 启动并设置开机自启:
systemctl start jenkins && systemctl enable jenkins
- 访问:
http://<MASTER_IP>:8080,按向导完成初始化(解锁、安装插件、创建管理员)。
- Docker 方式(便于快速搭建与迁移)
- 安装 Docker:
yum install -y docker && systemctl start docker && systemctl enable docker
- 启动 Master(映射 8080 与 50000,持久化数据卷):
docker run -d \
--name jenkins-master \
-p 8080:8080 -p 50000:50000 \
-v /usr/local/jenkins:/var/jenkins_home \
jenkins/jenkins:lts
- 查看初始化密钥:
docker logs jenkins-master,随后在页面完成设置。
三 添加与管理 Agent 节点
- 方式 A(推荐)—— SSH 启动 Agent
- 在 Master 生成密钥并免密登录 Agent:
ssh-keygen
ssh-copy-id <AGENT_USER>@<AGENT_IP>
- 在 Jenkins 管理界面:Manage Jenkins → Manage Nodes and Clouds → New Node,类型选 Permanent Agent,填写:
- Name、Description
- Number of executors(并发构建数)
- Remote root directory(如:/home/jenkins)
- Labels(如:linux maven)
- Usage:Use this node as much as possible
- Launch method:Launch agents via SSH
- 在 Credentials 中选择或新增 SSH Username with private key(私钥为 Master 的 id_rsa 内容)
- 保存后,首次连接按提示 Trust SSH Host Key,并启动代理。
- 方式 B —— JNLP 启动 Agent
- 在 Agent 下载 agent.jar:
wget http://<MASTER_IP>:8080/jnlpJars/agent.jar -O /tmp/agent.jar
- 在 Master 节点页面获取该 Agent 的 JNLP 启动命令(包含 -jnlpUrl 与 -secret),在 Agent 上执行:
java -jar /tmp/agent.jar \
-jnlpUrl http://<MASTER_IP>:8080/computer/<AGENT_NAME>/slave-agent.jnlp \
-secret <SECRET> \
-workDir "/home/jenkins"
- 启动后在 Master 节点列表看到 Agent 在线。
- 节点环境要点
- 安装与 Master 匹配的 JDK,以及项目依赖(如 Git、Maven 等)。
- 若工具路径与 Master 不一致,可在节点 “工具位置(Tool Locations)” 显式指定 JAVA_HOME、MAVEN_HOME、GIT 等路径,避免找不到命令。
四 任务与负载均衡配置
- 任务并发与节点选择
- 在 Job 配置中勾选 “在必要时并发构建”,并使用 “限制项目的运行节点” 指定标签表达式(如:linux && maven 或 agent-02 || agent-03),实现按标签调度与并行执行。
- 前端负载均衡(可选)
- 部署 Nginx/HAProxy,将 8080 端口的请求按权重/最少连接分发到多个 Master(如有多 Master 高可用场景),并对 50000 做健康检查,确保 Agent 长连接稳定。
五 验证与运维要点
- 验证
- 在 Manage Nodes 页面查看 Agent 在线/忙碌 状态;在 Job 控制台输出中确认 构建节点名称 与 日志 正常;多节点并发构建按预期执行。
- 运维
- 安全:在 Configure Global Security 启用安全策略,限制匿名访问,按最小权限分配凭据与权限。
- 监控与备份:收集 Jenkins 日志 与系统指标,必要时使用 Prometheus + Grafana 监控;定期备份 JENKINS_HOME(如 /usr/local/jenkins 或容器内映射目录)。