首页主机资讯Jenkins如何在Ubuntu上进行分布式构建

Jenkins如何在Ubuntu上进行分布式构建

时间2025-11-19 17:37:04发布访客分类主机资讯浏览1324
导读:在 Ubuntu 上搭建 Jenkins 分布式构建 一 架构与准备 架构说明:使用 Master–Agent(原 Slave) 模式,Master 负责任务调度与界面展示,Agent 负责实际构建,便于横向扩容与资源隔离。 版本建议:安...

在 Ubuntu 上搭建 Jenkins 分布式构建

一 架构与准备

  • 架构说明:使用 Master–Agent(原 Slave) 模式,Master 负责任务调度与界面展示,Agent 负责实际构建,便于横向扩容与资源隔离。
  • 版本建议:安装 OpenJDK 11(也可使用 OpenJDK 8,但需与 Master 的 Java 版本兼容)。
  • 基础环境:所有节点(Master 与 Agent)均安装 OpenJDK 11Jenkins(如需在 Agent 上运行 Jenkins 服务也可安装,但仅运行 Agent 时可只装 JRE/Java)。
  • 网络与端口:确保 Master 8080 端口可被 Agent 访问;如使用 JNLP 方式,需在 Master 开启 JNLP 代理端口 并放通防火墙。
  • 目录与权限:在 Agent 上预先创建 远程工作目录(如 /var/lib/jenkins),并确保运行 Jenkins Agent 的用户对该目录具备读写权限。

二 安装与基础配置

  • 安装 Java(Master 与所有 Agent)
    • 更新索引并安装:sudo apt-get update & & sudo apt-get install -y openjdk-11-jdk
  • 安装 Jenkins(Master)
    • 添加仓库并安装:
      • wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
      • sudo sh -c ‘echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list’
      • sudo apt-get update & & sudo apt-get install -y jenkins
    • 启动并设置开机自启:sudo systemctl start jenkins & & sudo systemctl enable jenkins
  • 基础安全与插件(Master)
    • Manage Jenkins → Configure Global Security 启用安全(如登录、授权策略)。
    • Manage Jenkins → Manage Plugins 安装常用插件:SSH Slaves、Pipeline、Git、Docker(按需)。

三 添加与管理 Agent 节点

  • 在 Master 新增节点
    • 路径:Manage Jenkins → Manage Nodes and Clouds → New Node,输入节点名称,选择 Permanent Agent
    • 关键配置:
      • Remote root directory:如 /var/lib/jenkins
      • Labels:如 ubuntu-22.04、docker、gpu(用于任务按标签调度)
      • Usage:如 Use this node as much as possible
      • Launch method:选择 Launch agent via Java Web Start(JNLP)或 Launch agents via SSH
  • 通过 JNLP 连接(Agent 上执行)
    • 在新增节点页面下载 agent.jar,拷贝至 Agent(如 /var/lib/jenkins)。
    • 运行命令(示例):
      • java -jar agent.jar -jnlpUrl http://:8080/computer//jenkins-agent.jnlp -secret -workDir /var/lib/jenkins
    • 连接成功后,节点状态显示为 Online
  • 通过 SSH 连接(推荐免密)
    • 在 Master 上配置 SSH 凭据(用户名/私钥),在节点配置的 Launch method 选择 Launch agents via SSH,填写 HostCredentials 等并保存,系统会自动连接。
  • 验证与常用操作
    • Manage Nodes 查看节点 在线/离线、负载、执行器数量;必要时调整 执行器(Executors)标签 以匹配 CPU/内存与用途。

四 运行与并行构建

  • 按节点标签运行
    • 在任务配置中勾选 Restrict where this project can be run,填写目标 Label(如 ubuntu-22.04),即可将任务固定到指定 Agent。
  • Pipeline 按标签调度
    • 示例:
      • pipeline { agent { label ‘docker’ } stages { stage(‘Build’) { steps { sh ‘echo Building…’ } } } }
  • 多任务并行
    • 在 Pipeline 中使用 parallel 并行多个阶段:
      • pipeline { agent any stages { stage(‘Parallel’) { parallel { stage(‘Task1’) { steps { echo ‘Task1’ } } stage(‘Task2’) { steps { echo ‘Task2’ } } } } }
  • 按节点选择构建(可选)
    • 安装 Node and Label parameter 插件,为任务增加节点选择参数,构建时动态指定 Agent

五 常见问题与优化

  • Java 不匹配:Master 与 Agent 的 Java 主版本 建议一致(如均为 OpenJDK 11),避免因字节码/工具链差异导致构建失败。
  • 连接失败排查:确认 8080JNLP 端口 已放通;JNLP 方式核对 jnlpUrlsecret;SSH 方式核对 SSH 凭据主机连通性
  • 权限与目录:确保 远程工作目录(如 /var/lib/jenkins)存在且 Jenkins Agent 运行用户 具备读写权限。
  • 资源与并发:根据 CPU/内存 合理设置 执行器数量,避免单机过载;通过 标签CPU 密集/IO 密集/需要 Docker 或 GPU 的任务拆分到不同 Agent。
  • 高可用与扩展:如需 Master 高可用,可结合 Keepalived 实现 VIP 漂移;横向扩展时持续增加 Agent 并按 标签 进行任务编排。

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


若转载请注明出处: Jenkins如何在Ubuntu上进行分布式构建
本文地址: https://pptw.com/jishu/751364.html
Ubuntu虚拟机如何安装数据库 Ubuntu虚拟机中如何调整分辨率

游客 回复需填写必要信息