Jenkins如何在CentOS上实现分布式构建
导读:1. 环境准备 确保所有CentOS节点(Master/Slave)满足以下条件: 安装Java 8+(Jenkins依赖Java运行):sudo yum install -y java-1.8.0-openjdk-devel; 节点间网...
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);
- 点击“Add”添加SSH凭据(选择“SSH Username with private key”,输入Slave节点的用户名(如
- 远程工作目录:设置Slave节点上的工作目录(如
- 点击“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。
- 方法1:若Master生成了
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节点设置标签(如
docker
、maven
),便于任务按需分配; - 配置环境变量:在Slave节点的“Node Properties”中添加环境变量(如
JAVA_HOME
),确保任务运行环境一致; - 监控节点状态:通过Jenkins的“Monitoring”插件(如“Node Usage”)监控Slave节点的资源使用情况(CPU、内存),及时扩展节点。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Jenkins如何在CentOS上实现分布式构建
本文地址: https://pptw.com/jishu/727452.html