centos

CentOS Jenkins如何搭建分布式构建

小樊
35
2025-10-01 00:09:32
栏目: 智能运维

CentOS环境下Jenkins分布式构建搭建指南

一、环境准备

  1. 基础要求:至少准备2台CentOS 7.x/8.x服务器(1台作为Master,1台及以上作为Slave),每台服务器需满足:

    • 至少1GB内存、50GB磁盘空间;
    • 已安装JDK 1.8+(java -version验证);
    • 服务器之间网络互通(关闭防火墙或放行Jenkins相关端口,默认Master端口为8080,Slave端口为50000)。
  2. Master节点安装Jenkins

    • 添加Jenkins YUM仓库并导入密钥:
      sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
      sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
      
    • 安装Jenkins并启动服务:
      sudo yum install jenkins -y
      sudo systemctl start jenkins
      sudo systemctl enable jenkins
      
    • 访问Master节点IP:8080,完成初始设置(输入管理员密码、创建管理员账号)。

二、配置Master节点

  1. 安装必要插件
    登录Jenkins Web界面→点击“Manage Jenkins”→“Manage Plugins”→“Available”,搜索并安装以下插件:

    • Node and Cloud Management(基础节点管理);
    • SSH Slaves(SSH方式连接Slave,推荐);
    • Docker Pipeline/Kubernetes(可选,用于容器化Slave扩展)。
  2. 配置全局工具(可选但建议)
    进入“Manage Jenkins”→“Global Tool Configuration”,设置Java、Maven等工具的环境变量(如JDK路径、Maven版本),确保Slave节点能复用统一工具链。

三、添加Slave节点

方式1:SSH方式(推荐,安全便捷)

  1. Slave节点准备

    • 安装Java(同Master节点要求);
    • 创建专用用户(如jenkins)并设置密码:
      sudo adduser jenkins
      sudo passwd jenkins
      
    • 配置SSH免密登录(Master→Slave):
      • Master节点生成SSH密钥:ssh-keygen -t rsa(默认路径~/.ssh/id_rsa);
      • 将公钥复制到Slave节点:ssh-copy-id jenkins@slave_ip
      • 测试免密登录:ssh jenkins@slave_ip
  2. Master添加Slave节点

    • 进入“Manage Jenkins”→“Manage Nodes and Clouds”→“New Node”;
    • 输入节点名称(如slave01),选择“Permanent Agent”,点击“OK”;
    • 配置节点参数:
      • Remote root directory:Slave节点的工作目录(如/home/jenkins/jenkins_agent);
      • Labels:节点标签(如linuxmaven,用于任务匹配,多个标签用空格分隔);
      • Number of executors:并发构建数(根据Slave资源设置,如2);
      • Launch method:选择“Launch agents via SSH”;
      • Credentials:添加Slave节点的SSH凭据(用户名jenkins,私钥选择Master节点~/.ssh/id_rsa);
    • 点击“Save”。

方式2:Java Web Start(适合临时测试)

  1. Master节点添加Slave节点(同上,选择“Permanent Agent”);
  2. 配置节点时,Launch method选择“Launch agent via Java Web Start”;
  3. 保存后,Master会生成一个JNLP链接(如http://master_ip:8080/computer/slave01/slave-agent.jnlp);
  4. 在Slave节点上打开浏览器访问该链接,下载并运行slave-agent.jnlp文件(需安装Java运行时)。

四、验证分布式构建

  1. 检查Slave节点状态
    登录Master节点Jenkins界面→“Manage Jenkins”→“Manage Nodes and Clouds”,查看Slave节点是否显示“Idle”(空闲)状态。

  2. 创建分布式构建任务

    • 点击“New Item”→输入任务名称(如distributed-test)→选择“Freestyle project”→“OK”;
    • 配置任务:
      • Restrict where this project can be run:勾选,在“Label Expression”中输入Slave节点的标签(如linux);
      • Build Steps:添加Shell命令(如echo "Running on $(hostname)" && sleep 30);
    • 点击“Save”并触发构建(手动或定时)。
  3. 查看构建结果
    构建触发后,在任务页面的“Build History”中点击最新构建,进入“Console Output”,若看到Slave节点的主机名输出,说明分布式构建成功。

五、高级配置(可选)

  1. 负载均衡与高可用

    • 安装“Load Balancer”插件,配置多个Master节点实现请求分发;
    • 使用Kubernetes插件,将Slave节点部署为动态Pod(需提前搭建Kubernetes集群),实现Slave的弹性伸缩。
  2. Slave节点管理

    • 限制Slave节点运行的任务类型(如仅运行Maven项目):在Slave配置的“Usage”中选择“Only build jobs with label expressions matching this node”;
    • 设置Slave节点的闲置超时时间(如30分钟无任务则自动离线):在Slave配置的“Idle termination minutes”中设置。

通过以上步骤,即可在CentOS环境下搭建Jenkins分布式构建环境,充分利用多台机器的资源提升构建效率。

0
看了该问题的人还看了