首页主机资讯Jenkins在Debian上的集群部署怎么做

Jenkins在Debian上的集群部署怎么做

时间2025-11-21 08:38:04发布访客分类主机资讯浏览444
导读:在 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
      • 填写 HostCredentials(SSH 私钥或用户名/密码)、JavaPath(如 /usr/bin/java
  • 方式二 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 做编排与弹性伸缩。

五 安全与运维要点

  • 安全加固
    • 禁用匿名访问,启用 基于矩阵/角色的权限控制,为管理员与构建账户配置最小权限。
    • 使用 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
Debian Minimal日志管理有何建议 Debian下如何管理Jenkins用户

游客 回复需填写必要信息