首页主机资讯如何在Ubuntu上实现Jenkins分布式部署

如何在Ubuntu上实现Jenkins分布式部署

时间2025-12-05 01:09:04发布访客分类主机资讯浏览862
导读:在 Ubuntu 上实现 Jenkins 分布式部署 一 架构与准备 架构说明:使用 Master–Agent 模式,Master 负责调度与界面展示,Agent 负责实际构建;在 Ubuntu 22.04/20.04 上推荐使用 Ope...

在 Ubuntu 上实现 Jenkins 分布式部署

一 架构与准备

  • 架构说明:使用 Master–Agent 模式,Master 负责调度与界面展示,Agent 负责实际构建;在 Ubuntu 22.04/20.04 上推荐使用 OpenJDK 11 作为运行时。为提升并行度与隔离性,可为不同技术栈准备多台 Agent(如 Maven、Node.js、Docker 等)。
  • 网络与端口:确保 Master 8080(Web)与 50000(JNLP/代理通信)对 Agent 可达;如使用云主机,请放通安全组/防火墙对应端口。
  • 时间同步:所有节点启用 NTPsystemd-timesyncd 保持时间一致,避免证书/通信异常。
  • 基础软件:安装 OpenJDK 11Git、构建工具(如 Maven/Gradle)、以及 Docker(如需在 Agent 上构建镜像)。

二 安装与初始化 Master

  • 安装 Java 与 Jenkins(Ubuntu 官方仓库示例):
    sudo apt update
    sudo apt install -y openjdk-11-jdk
    wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/jenkins-keyring.gpg >
        /dev/null
    echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.gpg] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list >
        /dev/null
    sudo apt update
    sudo apt install -y jenkins
    sudo systemctl enable --now jenkins
    
  • 初始化:获取初始管理员密码 sudo cat /var/lib/jenkins/secrets/initialadminpassword,完成安装向导;安装常用插件(如 Pipeline、Git、Docker、Kubernetes CLI、Credentials Binding)。

三 添加与管理 Agent

  • 方式一 JNLP 启动(通用、简单)
    1. 在 Master:Manage Jenkins → Manage Nodes and Clouds → New Node,填写节点名,选择 Permanent Agent,设置 远程工作目录(如 /var/lib/jenkins)、标签(如 linux、maven)、执行器数量(并发构建数)。保存后页面会显示 agent.jar 下载链接启动命令(包含 -jnlpUrl-secret)。
    2. 在 Agent:安装 OpenJDK 11,创建工作目录,下载 agent.jar 并执行页面给出的命令,例如:
      mkdir -p /var/lib/jenkins
      cd /var/lib/jenkins
      wget http://<
          MASTER>
          :8080/jnlpJars/agent.jar
      java -jar agent.jar -jnlpUrl http://<
          MASTER>
          :8080/computer/<
          AGENT>
          /jenkins-agent.jnlp -secret <
          SECRET>
           -workDir "/var/lib/jenkins"
      
    3. 验证:Master 节点列表显示 在线;Agent 上可见 java -jar remoting.jar 进程。
  • 方式二 SSH 启动(便于系统化管理)
    1. 在 Master 创建 SSH 凭据(用户名/私钥或密码)。
    2. 新建节点时选择 Launch agents via SSH,填写 HostCredentials,设置 工作目录标签;保存后自动连接。
  • 任务路由与标签:在 Job 配置中勾选 Restrict where this project can be run,按 标签或指定 节点名运行;也可安装 Node and Label parameter 插件在构建时选择节点。

四 验证与常见问题

  • 验证要点
    • Master 节点列表显示 Agent 在线;构建日志显示 Running on ;Agent 上 ps -ef | grep remoting.jar 存在对应进程。
  • 常见问题与处理
    • Java 不匹配或不可用:确保 Agent 安装与 Master 兼容的 JDK(推荐 OpenJDK 11),java -version 正常;必要时在 Job 的 工具位置显式指定 JDK 路径
    • 端口不通:确认 8080/50000Agent 开放,云上需放通安全组;如使用 JNLP,确保 Master URLAgent 启动命令一致。
    • 路径不一致导致构建失败:Agent 上创建与脚本一致的工具/工作目录(如 /usr/bin/git、/opt/maven),或在 Global Tool Configuration 中统一路径;必要时在 Agent 工作目录建立工具软链(如将 /usr/bin/java 链接到 Agent 工作目录下的 jdk/bin/java)。
    • 时间漂移:启用 NTP 同步,避免因时间偏差导致认证或日志异常。

五 进阶与扩展

  • 容器化与弹性伸缩:使用 Docker 运行 Jenkins Master/Agent,通过 Kubernetes 插件K8s 中按需动态创建 Pod Agent,实现自动扩缩与资源隔离(适合高峰并发与多语言环境)。
  • 高可用与负载均衡:部署 多个 Master 前置 Nginx/HAProxyVIP/域名 负载均衡,配合共享存储(如 NFS)与定期备份,降低单点故障风险;结合 **监控(Prometheus/Grafana)**与 **日志(ELK)**提升可观测性。

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


若转载请注明出处: 如何在Ubuntu上实现Jenkins分布式部署
本文地址: https://pptw.com/jishu/764181.html
如何减少Debian Apache错误日志 Ubuntu Jenkins部署后如何进行性能调优

游客 回复需填写必要信息