温馨提示×

Jenkins如何在CentOS上实现分布式构建

小樊
49
2025-10-15 12:36:51
栏目: 智能运维

1. 环境准备

确保所有CentOS节点(Master/Slave)满足以下条件:

  • 安装Java 8+(Jenkins依赖Java运行):sudo yum install -y java-1.8.0-openjdk-devel
  • 节点间网络互通(Master能通过SSH访问Slave,或Slave能访问Master的8080端口);
  • 关闭防火墙或放行必要端口(Jenkins默认8080,SSH默认22):sudo systemctl stop firewalld(临时关闭)或配置firewall-cmd放行端口。

2. 安装Jenkins Master

在Master节点上通过YUM仓库安装Jenkins(官方稳定源):

# 添加Jenkins官方仓库 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 -y jenkins # 启动并设置开机自启 sudo systemctl start jenkins sudo systemctl enable jenkins 

访问http://<Master_IP>:8080,按提示完成初始设置(输入管理员密码、创建管理员账号)。

3. 配置Jenkins Master

登录Master节点的Jenkins Web界面,完成以下配置:

  • 安装必要插件:进入“Manage Jenkins”→“Manage Plugins”,搜索并安装Node and Label Parameter(用于节点选择)、Pipeline(可选,用于流水线任务)等插件;
  • 全局工具配置:进入“Manage Jenkins”→“Global Tool Configuration”,设置Java、Maven等工具的环境变量(确保所有Slave节点工具版本一致)。

4. 添加Slave节点

4.1 在Master上创建Slave节点

进入“Manage Jenkins”→“Manage Nodes and Clouds”→“New Node”:

  • 输入节点名称(如centos-slave1);
  • 选择节点类型为Permanent Agent(永久节点,适合长期稳定运行);
  • 配置节点信息:
    • 远程工作目录:设置Slave节点上的工作目录(如/home/jenkins/agent,需提前创建);
    • 启动方法:选择Launch agent via SSH(推荐,安全且自动化);
      • 点击“Add”添加SSH凭据(选择“SSH Username with private key”,输入Slave节点的用户名(如jenkins),并粘贴Slave节点的私钥);
      • 输入Slave节点的IP地址和SSH端口(默认22);
  • 点击“Save”保存配置。

4.2 在Slave节点上准备Jenkins Agent

  • 安装Java:同Master节点,确保Java 8+已安装;
  • 创建工作目录mkdir -p /home/jenkins/agent
  • 启动Agent
    • 方法1:若Master生成了agent.jar链接(如http://<Master_IP>:8080/computer/<Node_Name>/slave-agent.jnlp),下载后运行:
      java -jar /path/to/agent.jar -jnlpUrl http://<Master_IP>:8080/computer/<Node_Name>/slave-agent.jnlp -secret <Your_Secret> -workDir "/home/jenkins/agent" 
    • 方法2:若使用SSH启动(推荐),无需手动下载agent.jar,Master会自动推送并启动Agent。

5. 验证Slave节点连接

回到Master节点的Jenkins界面,进入“Manage Jenkins”→“Manage Nodes and Clouds”,查看Slave节点状态:

  • 若状态显示为Online(在线),说明连接成功;
  • 若状态为Offline(离线),检查Slave节点的网络连通性、SSH凭据是否正确、工作目录权限(需Slave用户有读写权限)。

6. 配置分布式构建任务

创建或编辑一个构建任务,配置使用Slave节点:

  • 方式1:通过标签选择节点(推荐,灵活分配任务):
    • 在任务配置页面,勾选“Restrict where this project can be run”;
    • 输入Slave节点的标签(如linux,需在Slave节点配置时设置);
    • 示例Pipeline脚本:
      pipeline { agent { node { label 'centos-slave1' // 指定Slave节点标签 } } stages { stage('Test on Slave') { steps { echo "Running on ${env.NODE_NAME}" sh 'uname -a' // 执行Shell命令 } } } } 
  • 方式2:通过参数选择节点
    • 安装“Node and Label Parameter”插件;
    • 在任务配置中添加“Node”参数,列出所有可用Slave节点;
    • 构建时手动选择节点。

7. 验证分布式构建

触发构建任务(手动或自动),观察Master节点的“Build History”:

  • 点击构建记录,进入“Console Output”,查看任务是否在指定的Slave节点上执行(如Running on centos-slave1);
  • 登录Slave节点,检查工作目录(如/home/jenkins/agent)是否有构建生成的文件(如日志、编译产物)。

8. 可选:优化分布式构建

  • 设置节点标签:为不同Slave节点设置标签(如dockermaven),便于任务按需分配;
  • 配置环境变量:在Slave节点的“Node Properties”中添加环境变量(如JAVA_HOME),确保任务运行环境一致;
  • 监控节点状态:通过Jenkins的“Monitoring”插件(如“Node Usage”)监控Slave节点的资源使用情况(CPU、内存),及时扩展节点。

0