Debian Jenkins如何进行分布式构建
导读:Debian系统下Jenkins分布式构建实施指南 一、前置准备 在开始配置前,需确保以下条件满足: 节点规划:至少1台主节点(Master)(负责任务调度、管理)和1台工作节点(Slave)(负责实际构建执行);可根据负载需求扩展工作节...
Debian系统下Jenkins分布式构建实施指南
一、前置准备
在开始配置前,需确保以下条件满足:
- 节点规划:至少1台主节点(Master)(负责任务调度、管理)和1台工作节点(Slave)(负责实际构建执行);可根据负载需求扩展工作节点数量。
- 系统要求:所有节点均为Debian系统(推荐Debian 11及以上稳定版),安装OpenJDK 11或Oracle JDK 8+(通过
java -version
验证)。 - 网络连通:主节点与工作节点之间需开放Jenkins默认端口(8080)及JNLP/SSH端口(默认JNLP为49187,SSH为22),确保能互相访问。
二、安装Jenkins
在所有节点上通过Debian包管理器安装Jenkins:
# 添加Jenkins官方仓库密钥和源
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc >
/dev/null
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list >
/dev/null
# 更新软件包索引并安装Jenkins
sudo apt update
sudo apt install -y jenkins
# 启动Jenkins服务并设置开机自启
sudo systemctl start jenkins
sudo systemctl enable jenkins
# 查看初始管理员密码(用于首次登录)
sudo cat /var/lib/jenkins/secrets/initialadminpassword
访问http://<
节点IP>
:8080
,输入初始密码完成初始配置(如设置管理员账号、安装推荐插件)。
三、配置Jenkins主节点
- 进入管理界面:登录Jenkins后,点击左侧导航栏Manage Jenkins。
- 配置系统设置:
- 选择Manage Nodes and Clouds,确认主节点(默认名为
master
)的状态为“Idle”(空闲)。 - 点击顶部Configure System,找到Distributed build部分,确保“Enable distributed build”选项已勾选(默认开启)。
- 选择Manage Nodes and Clouds,确认主节点(默认名为
- 设置主节点URL(可选但推荐):
- 编辑
/etc/default/jenkins
文件,添加或修改以下内容:JENKINS_URL="http://< 主节点IP> :8080"
- 重启Jenkins服务使配置生效:
sudo systemctl restart jenkins
- 编辑
四、添加并配置工作节点
方法1:通过Jenkins界面手动添加(推荐)
-
生成JNLP启动文件:
- 在主节点的Manage Nodes and Clouds页面,点击New Node。
- 输入节点名称(如
slave1
),选择Permanent Agent,点击OK。 - 配置节点参数:
- Remote root directory:设置工作节点的Jenkins工作目录(如
/var/lib/jenkins
,需提前创建并赋权:sudo mkdir -p /var/lib/jenkins & & sudo chown -R jenkins:jenkins /var/lib/jenkins
)。 - Launch method:选择Launch agent via Java Web Start(适用于简单环境)。
- Remote root directory:设置工作节点的Jenkins工作目录(如
- 点击Save,Jenkins会生成一个JNLP启动链接(如
http://< 主节点IP> :8080/computer/slave1/slave-agent.jnlp
)。
-
启动工作节点:
- 在工作节点上打开终端,运行以下命令启动代理:
(注:java -jar agent.jar -jnlpUrl http://< 主节点IP> :8080/computer/slave1/slave-agent.jnlp -secret < 节点密钥> -workDir "/var/lib/jenkins"
< 节点密钥>
可在主节点节点配置页面的“Secret”字段获取)
- 在工作节点上打开终端,运行以下命令启动代理:
-
验证连接:
- 返回主节点的Manage Nodes and Clouds页面,若工作节点状态显示为“Idle”,则表示连接成功。
方法2:通过SSH连接(适用于安全环境)
-
准备工作节点:
- 在工作节点上安装JDK(同主节点要求)。
- 创建Jenkins专用用户并设置密码:
sudo useradd -m jenkins_slave sudo passwd jenkins_slave
- 开启sshd服务(默认开启):
sudo systemctl start sshd sudo systemctl enable sshd
-
配置主节点SSH密钥:
- 在主节点上生成SSH密钥(若未生成):
ssh-keygen -t rsa -b 4096
- 将公钥复制到工作节点:
ssh-copy-id jenkins_slave@< 工作节点IP>
- 在主节点上生成SSH密钥(若未生成):
-
添加SSH工作节点:
- 在主节点的New Node页面,输入节点名称,选择Permanent Agent。
- 配置Launch method为Launch agent via SSH,填写工作节点信息:
- Host:工作节点IP。
- Credentials:选择“SSH Username with private key”,添加主节点的SSH私钥。
- 点击Save,Jenkins会自动通过SSH连接工作节点。
五、分配分布式构建任务
-
创建任务:
- 点击左侧New Item,输入任务名称(如
distributed-demo
),选择Freestyle project(或其他类型,如Pipeline),点击OK。
- 点击左侧New Item,输入任务名称(如
-
配置任务:
- 在General tab中,勾选Restrict where this project can be run,输入工作节点的标签(如
linux
,需在工作节点配置中设置)或节点名称(如slave1
)。 - 在Build tab中,添加构建步骤(如
Execute shell
,输入echo "Running on $(hostname)"
)。
- 在General tab中,勾选Restrict where this project can be run,输入工作节点的标签(如
-
保存并运行:
- 点击Save,然后点击Build Now。
- 在Build History中查看任务进度,点击构建编号可查看控制台输出,确认任务在工作节点上执行。
六、验证与维护
-
验证分布式构建:
- 在工作节点的
/var/lib/jenkins
目录下,应能看到任务的构建产物(如日志文件、生成的安装包)。 - 主节点的Build Executor Status页面,应显示工作节点正在执行任务。
- 在工作节点的
-
维护工作节点:
- 重启代理:在工作节点上停止
agent.jar
进程(ps -ef | grep agent.jar
,然后kill -9 < PID>
),重新运行启动命令。 - 删除节点:在主节点的Manage Nodes and Clouds页面,选中节点后点击Delete。
- 监控状态:通过主节点的Manage Jenkins > System Information,查看节点连接状态和资源使用情况。
- 重启代理:在工作节点上停止
注意事项
- 标签策略:为工作节点设置清晰的标签(如
ubuntu
、docker
、windows
),便于任务按环境分配。 - 资源分配:根据任务负载调整工作节点的执行器数量(在节点配置的“# of executors”中设置),避免资源耗尽。
- 安全配置:若通过SSH连接,建议使用密钥认证而非密码;若通过JNLP连接,建议配置防火墙限制访问IP。
- 高可用性:可部署多个主节点组成集群(需配合Jenkins HA插件),提升系统可靠性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian Jenkins如何进行分布式构建
本文地址: https://pptw.com/jishu/728756.html