Debian上实现Jenkins集群部署指南
在所有节点(Master/Slave)上完成以下基础配置:
sudo apt update && sudo apt install -y openjdk-11-jdk
java -version # 验证安装(需显示11.x版本)
wget -q -O - 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
sudo apt update
sudo apt install -y jenkins
sudo systemctl enable --now jenkins
http://<Master-IP>:8080,通过浏览器解锁(初始密码在/var/lib/jenkins/secrets/initialAdminPassword中),完成管理员账户创建及插件安装(推荐安装Pipeline、Git、Kubernetes等常用插件)。sudo apt install -y jenkins-slave
Manage Jenkins > Manage Nodes and Clouds > New Node。slave1),选择Permanent Agent,点击OK。/var/jenkins_slave,需提前创建并赋权:sudo mkdir -p /var/jenkins_slave && sudo chown jenkins:jenkins /var/jenkins_slave)。Launch agents via SSH,输入Slave节点的IP地址,点击Add添加Credentials(选择SSH Username with private key,私钥由Master生成并通过安全方式传输给Slave)。Save完成创建。docker run -d --name jenkins_slave -e JENKINS_URL=http://<Master-IP>:8080 -e JENKINS_SECRET=<Secret-Token> -e JENKINS_AGENT_NAME=slave1 -v /var/jenkins_slave:/home/jenkins jenkinsci/ssh-slave
其中<Secret-Token>来自Master节点Manage Nodes页面的Secret字段,slave1为节点名称。若有多个Master节点,可通过HAProxy或Nginx实现请求分发,避免单点故障。
sudo apt install -y haproxy
/etc/haproxy/haproxy.cfg):frontend jenkins_frontend
bind *:8080
default_backend jenkins_backend
backend jenkins_backend
balance roundrobin
server master1 <Master1-IP>:8080 check
server master2 <Master2-IP>:8080 check
sudo systemctl restart haproxy
此时,通过http://<HAProxy-IP>:8080访问Jenkins,请求会自动分发到后端Master节点。Manage Jenkins > New Item,选择Freestyle project,输入名称(如test-job),点击OK。Build section添加Execute shell步骤,输入echo "Hello from ${NODE_NAME}"(NODE_NAME为Jenkins内置变量,显示当前执行节点)。Build Now,查看构建日志,确认任务在Slave节点上执行(日志中应显示Hello from slave1)。JENKINS_HOME(默认/var/lib/jenkins)挂载到外部存储(如NFS),避免数据丢失。Prometheus + Grafana监控Jenkins集群状态(如节点在线情况、任务队列长度),设置告警规则(如Master宕机时发送邮件通知)。Manage Jenkins > Configure Global Security启用认证(如LDAP、GitHub OAuth),并配置角色权限(如Admin、Developer)。通过以上步骤,即可在Debian环境中搭建高可用的Jenkins集群,实现任务的分布式执行与管理。