首页主机资讯Linux下Jenkins怎样实现分布式构建

Linux下Jenkins怎样实现分布式构建

时间2025-11-14 21:17:04发布访客分类主机资讯浏览707
导读:Linux下Jenkins分布式构建实操指南 一 架构与关键概念 采用 Master–Agent(旧称 Slave) 架构:Master 负责调度、界面与记录,Agent 在远程机器上执行构建;构建结果和产物最终回到 Master。 基本...

Linux下Jenkins分布式构建实操指南

一 架构与关键概念

  • 采用 Master–Agent(旧称 Slave) 架构:Master 负责调度、界面与记录,Agent 在远程机器上执行构建;构建结果和产物最终回到 Master
  • 基本要素:
    • 节点 Node:一台可运行任务的机器(Master 或 Agent)。
    • 执行器 Executor:节点上真正执行构建的线程/进程,一个节点可配置多个执行器。
    • 标签 Label:对节点按环境或能力分组(如 linux、jdk11、docker),用于精准投递任务。
  • 典型场景:跨 操作系统(如在 Linux 编译、在 Windows 跑 IE 测试)、横向扩容 应对高峰、将 重型任务 隔离到专用机器。

二 前置准备

  • 在所有节点安装 Java(推荐 OpenJDK 11):sudo apt-get update & & sudo apt-get install -y openjdk-11-jdk
  • 确保 Master 可被 Agent 访问(网络、防火墙、安全组放行),并准备好用于连接的账号与凭据。
  • 规划节点 标签执行器数量(依据 CPU/内存与磁盘 I/O 评估)。

三 添加 Linux 从节点

  • Master 管理界面:Manage Jenkins → Manage Nodes and Clouds → New Node,类型选 Permanent Agent,填写:
    • Name:如 linux-build-01
    • Remote root directory:如 /var/jenkins
    • Labels:如 linux jdk11 maven
    • Usage
      • Use this node as much as possible(尽量使用);
      • Only build jobs with label expression matching this node(仅匹配标签的任务使用)。
    • Launch method
      • Launch agent via SSH(推荐,需在 Master 安装 SSH Slaves 插件):填写 HostCredentials,按需设置 JavaPath
      • Launch agent by connecting it to the master(JNLP/Java Web Start):
        1. 在 Master 节点页面下载 agent.jar
        2. agent.jar 传到 Agent 的 Remote root directory
        3. 在 Agent 上执行连接命令(示例):
          java -jar agent.jar -jnlpUrl http://< MASTER_IP> :8080/computer/< AGENT_NAME> /slave-agent.jnlp -secret -workDir “/var/jenkins”
  • 节点上线后,可在 Master 的节点列表查看 在线状态、负载、日志

四 任务分发与 Pipeline 示例

  • 按标签固定节点运行:在 Freestyle 项目的 Restrict where this project can be run 填入标签(如 linux)。
  • Pipeline 按标签调度:
    pipeline { agent { label ‘linux’ } stages { stage(‘Build’) { steps { sh ‘java -version’ sh ‘mvn -B -DskipTests clean package’ } } } }
  • 并发与隔离建议:为 CPU 核数相近 的节点配置合理 Executors,将 重型/有状态 任务隔离到专用节点,避免相互影响。

五 安全与运维最佳实践

  • 加固 Master→Agent 通道:
    • 使用 SSH 密钥JNLP 固定端口(在 Manage Jenkins → Global Security → TCP port for JNLP 选择固定端口),便于防火墙与自动化;
    • 避免使用 root 运行 Agent,采用最小权限账号与目录隔离。
  • 工具链与环境:
    • Manage Jenkins → Global Tool Configuration 统一配置 JDK、Git、Maven、Docker 等工具路径;
    • 在节点 Tool Locations 覆盖工具目录,使 跨平台/跨节点 Job 配置一致;
    • 保持 Master 轻量,尽量不在 Master 上执行构建。
  • 弹性伸缩与容器化:
    • 使用 Docker 运行临时 Agent,快速扩容;
    • 结合 Kubernetes 插件实现按需拉起 Pod Agent,适合高峰与弹性负载。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux下Jenkins怎样实现分布式构建
本文地址: https://pptw.com/jishu/748438.html
Jenkins在Linux如何进行日志管理 VirtualBox虚拟机如何调整内存

游客 回复需填写必要信息