Jenkins在Debian上的集群部署怎么做
导读:在 Debian 上搭建 Jenkins 集群的实用方案 一 架构与准备 架构选型 推荐采用 Master–Agent 分布式构建:Master 负责调度与界面,Agent 负责执行构建任务,便于横向扩容与资源隔离。 面向高可用可叠加...
在 Debian 上搭建 Jenkins 集群的实用方案
一 架构与准备
- 架构选型
- 推荐采用 Master–Agent 分布式构建:Master 负责调度与界面,Agent 负责执行构建任务,便于横向扩容与资源隔离。
- 面向高可用可叠加 HAProxy/Nginx 负载均衡 或 Docker Swarm/Kubernetes 等编排方案。
- 环境与网络
- 节点建议:Debian 稳定版,内存至少 4GB(生产建议 8GB+),磁盘 10GB+。
- 安装 OpenJDK 11(或 JDK 8),并确保节点间 SSH 互通 与 防火墙放行 8080/50000 等端口。
- 统一 Jenkins 版本 与插件集合,减少兼容性问题。
二 安装与初始化 Master
- 安装 Java
- 执行:
sudo apt update & & sudo apt install -y openjdk-11-jdk - 验证:
java -version
- 执行:
- 添加 Jenkins APT 源(使用签名密钥环)
- 执行:
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key \ | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" \ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null sudo apt-get update
- 执行:
- 安装并启动
- 执行:
sudo apt-get install -y jenkins - 开机自启:
sudo systemctl enable --now jenkins - 查看初始管理员密码:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
- 执行:
- 首次访问与初始化
- 浏览器访问:
http://< master_ip> :8080 - 完成解锁后安装建议插件并创建管理员账户。
- 浏览器访问:
三 添加 Agent 节点
- 方式一 SSH 直连(推荐)
- 在 Master 生成密钥:
ssh-keygen - 将公钥分发至 Agent:
ssh-copy-id < agent_user> @< agent_ip> - 在 Master 控制台:Manage Jenkins → Manage Nodes and Clouds → New Node
- 名称:如 agent-01
- 远程工作目录:如 /var/jenkins
- 启动方式:选择 Launch agents via SSH
- 填写 Host、Credentials(SSH 私钥或用户名/密码)、JavaPath(如 /usr/bin/java)
- 在 Master 生成密钥:
- 方式二 JNLP 代理(容器内或受限环境)
- 在 Master 创建 Permanent Agent 并记录 JNLP 地址 与 Secret
- 在 Agent 上运行(示例):
docker run -d --name jenkins-agent \ -e JENKINS_URL=http://< master_ip> :8080 \ -e JENKINS_SECRET=< secret> \ -e JENKINS_AGENT_NAME=< agent-01> \ -v /var/jenkins:/var/jenkins \ jenkins/agent:latest - 或下载 agent.jar 后执行:
java -jar agent.jar -jnlpUrl http://< master_ip> :8080/computer/< agent-01> /slave-agent.jnlp -secret < secret> -workDir /var/jenkins
- 节点标签与用法
- 为 Agent 设置标签(如 linux、docker、gpu),在 Job 的 agent { label ‘xxx’ } 中使用,实现按标签调度。
四 高可用与扩展
- 负载均衡(HAProxy 示例)
- 安装:
sudo apt install -y haproxy - 配置
/etc/haproxy/haproxy.cfg:frontend jenkins bind *:8080 default_backend jenkins_servers backend jenkins_servers balance roundrobin server jenkins1 < ip1> :8080 check server jenkins2 < ip2> :8080 check - 生效:
sudo systemctl restart haproxy - 说明:如需 JNLP 端口转发,在后端增加 server …:50000 转发;构建节点仍需直连 Master 的 50000 端口以连接 Agent。
- 安装:
- 容器化与编排
- Docker Compose 快速起多 Agent(示例要点):
version: '3.8' services: master: image: jenkins/jenkins:lts ports: - "8080:8080" - "50000:50000" volumes: - jenkins_master_data:/var/jenkins_home agent1: image: jenkins/agent:latest environment: - JENKINS_URL=http://master:8080 command: > agent -jnlpUrl http://master:8080/computer/agent1/slave-agent.jnlp -secret < secret> -workDir /var/jenkins volumes: - jenkins_agent1_data:/var/jenkins volumes: jenkins_master_data: jenkins_agent1_data: - 生产可选 Docker Swarm/Kubernetes 做编排与弹性伸缩。
- Docker Compose 快速起多 Agent(示例要点):
五 安全与运维要点
- 安全加固
- 禁用匿名访问,启用 基于矩阵/角色的权限控制,为管理员与构建账户配置最小权限。
- 使用 SSH 密钥 或 JNLP Secret 认证,避免明文口令;限制 /var/lib/jenkins 与 /var/run/docker.sock 的访问权限。
- 系统与插件
- 统一 Jenkins 版本 与插件版本,定期备份 JENKINS_HOME;在 Global Tool Configuration 中配置 JDK、Git、Maven、Docker 等工具路径。
- 防火墙与端口
- 放行 8080(Web)、50000(Agent 通信),以及节点间 SSH 22;云环境同步配置 安全组 规则。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Jenkins在Debian上的集群部署怎么做
本文地址: https://pptw.com/jishu/752948.html
