Linux Jenkins如何实现分布式构建
Linux环境下Jenkins实现分布式构建的完整步骤
1. 前置准备:安装Jenkins Master与Java环境
分布式构建的核心是Jenkins Master(主控节点,负责任务调度)和Slave节点(工作节点,负责执行任务)。首先需要在Master节点安装Jenkins和Java(所有节点的Java版本需一致,推荐OpenJDK 11+):
# 更新系统并安装OpenJDK 11
sudo apt update &
&
sudo apt install -y openjdk-11-jdk # Debian/Ubuntu
sudo yum install -y java-11-openjdk-devel # CentOS/RHEL
# 下载并安装Jenkins(以Debian为例)
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 update &
&
sudo apt install -y jenkins
# 启动Jenkins服务
sudo systemctl start jenkins &
&
sudo systemctl enable jenkins
访问http://<
master-ip>
:8080
,按提示完成初始设置(如解锁密码、管理员账号)。
2. 配置Jenkins Master:开启分布式构建支持
登录Jenkins Web界面,进入Manage Jenkins → Manage Nodes and Clouds,确认“Nodes”列表为空(初始状态)。此时Master已具备管理Slave节点的能力,后续需添加Slave节点。
3. 添加Slave节点:生成Agent并配置连接
3.1 在Master上创建Slave节点
点击Manage Nodes and Clouds → New Node,输入节点名称(如slave-node-01
),选择Permanent Agent(永久节点,适合长期稳定运行),点击“OK”。
3.2 配置Slave节点参数
- Remote root directory:设置Slave节点的工作目录(如
/home/jenkins/agent
,需提前创建并赋权chmod 755 /home/jenkins
); - Number of executors:设置并行执行任务的数量(如
2
,表示该节点可同时运行2个任务); - Launch method:选择连接方式(常用Launch agent via SSH,安全且无需手动启动)。
4. 配置Slave节点连接:SSH方式(推荐)
若选择“Launch agent via SSH”,需完成以下步骤:
4.1 在Slave节点安装Java和Jenkins Agent
# 安装Java(同Master步骤)
sudo yum install -y java-11-openjdk-devel # CentOS示例
# 下载Jenkins Agent(确保版本与Master一致)
wget https://repo.jenkins-ci.org/public/org/jenkins-ci/main/remoting/latest/remoting.jar -P /home/jenkins/
4.2 在Master上配置SSH凭据
- 进入Manage Jenkins → Credentials,点击“System → Global credentials”;
- 点击“Add Credentials”,选择“SSH Username with private key”,输入Slave节点的用户名(如
jenkins
)和私钥(需提前在Slave节点生成:ssh-keygen -t rsa
,并将公钥id_rsa.pub
复制到Master的~/.ssh/authorized_keys
)。
4.3 完成Slave节点配置
回到Slave节点配置页面,选择“SSH Username with private key”,填写:
- Username:Slave节点的SSH用户名(如
jenkins
); - Private Key:选择“Enter directly”,粘贴Master的私钥内容;
- Host:Slave节点的IP地址或域名;
- Port:SSH端口(默认
22
);
点击“Test Connection”,确认连接成功后保存。
5. 验证Slave节点状态
返回Manage Nodes and Clouds,查看Slave节点状态是否为Idle(空闲)。若状态为Online,说明连接成功。
6. 配置构建任务:分配给Slave节点
创建或编辑一个构建任务(如“test-pipeline”),在配置页面进行以下设置:
6.1 指定Slave节点
- General → Restrict where this project can be run:勾选,输入Slave节点的标签(如
linux-agent
,需在Slave节点配置时设置); - 或通过Pipeline脚本指定:
pipeline { agent { node { label 'linux-agent' // 匹配Slave节点的标签 } } stages { stage('Build') { steps { sh 'echo "Building on Linux Slave"' sh 'uname -a' // 验证执行环境 } } } }
6.2 添加构建步骤
根据项目需求添加Shell、Maven、Gradle等步骤(如sh 'mvn clean package'
)。
7. 启动构建并监控
点击“Build Now”,Jenkins会将任务分配给符合条件的Slave节点(如linux-agent
)。在Build History中查看任务状态,点击“Console Output”可查看Slave节点的执行日志。
注意事项
- 网络与权限:确保Master与Slave节点之间的网络互通(防火墙开放Jenkins端口
8080
和SSH端口22
); - 资源分配:根据Slave节点的硬件配置(CPU、内存)调整Executors数量,避免过载;
- 版本一致性:所有节点的Jenkins、Java、构建工具(如Maven、Gradle)版本需保持一致,防止兼容性问题;
- 高可用性:建议配置多个Slave节点,通过标签实现任务负载均衡(如
linux-agent-01
、linux-agent-02
均打linux-agent
标签)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Jenkins如何实现分布式构建
本文地址: https://pptw.com/jishu/726021.html