在Ubuntu系统上实现Jenkins集群化,需先完成**主节点(Master)与从节点(Agent/Slave)**的环境配置,核心是确保Java环境兼容(推荐OpenJDK 11)及网络互通。
sudo apt update
sudo apt install -y openjdk-11-jdk
java -version # 验证安装(需显示11.x版本)
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
sudo systemctl enable --now jenkins # 启动服务并设置开机自启
访问http://<主节点IP>:8080,按提示完成初始设置(解锁密码在/var/lib/jenkins/secrets/initialAdminPassword中获取)。主节点负责任务调度与节点管理,需完成以下关键配置:
Manage Jenkins > Manage Plugins,安装以下插件:
Manage Jenkins > Configure Global Security,开启安全功能,选择合适的授权策略(如“登录用户可以做任何事”),避免未授权访问。ssh-keygen -t rsa -b 4096 # 主节点生成密钥(默认路径~/.ssh/id_rsa)
ssh-copy-id user@<从节点IP> # 复制公钥至从节点(替换user为从节点用户名)
测试SSH连通性:ssh user@<从节点IP>(无需密码即可登录)。从节点是实际执行构建任务的“工人”,需在主节点上配置并启动:
主节点添加从节点步骤:
进入Manage Jenkins > Manage Nodes and Clouds > New Node,填写以下信息:
ubuntu-agent-01);/home/jenkins/agent,需提前创建);ubuntu、docker,多个标签用空格分隔);SSH方式连接从节点:
若选择“Launch agents via SSH”,需在“SSH Credentials”中添加从节点的SSH私钥(主节点已生成的id_rsa),并填写从节点的用户名、主机名/IP、端口(默认22)。
从节点启动验证:
配置完成后,Jenkins会自动生成启动命令(如SSH方式的ssh -l user <从节点IP> -p 22 java -jar /tmp/jenkins-agent.jar),在从节点终端执行该命令,若显示“Agent successfully connected and online”则表示连接成功。
配置完成后,需通过任务设置将构建任务分配至集群节点:
Pipeline任务配置:
创建Pipeline项目,在Jenkinsfile中通过label指定节点:
pipeline {
agent {
label 'ubuntu' // 匹配从节点的标签(如前面设置的“ubuntu”)
}
stages {
stage('Build') {
steps {
sh 'echo "Building on $(hostname)"' # 打印当前节点主机名
sh 'mvn clean install' # 示例:Maven构建
}
}
}
}
保存并运行,Jenkins会自动将任务分配至带有ubuntu标签的从节点。
Freestyle任务配置:
创建Freestyle项目,在“Restrict where this project can be run”中输入节点标签(如ubuntu),任务将仅在匹配的节点上执行。
Manage Jenkins > Manage Nodes and Clouds,可查看所有节点的在线状态、执行器使用情况、最近任务执行记录等。/var/lib/jenkins目录(包含配置、任务、插件等),可使用rsync或云存储实现异地备份。通过以上步骤,即可在Ubuntu系统上搭建高可用的Jenkins集群,实现构建任务的分布式执行,提升CI/CD流程的效率与稳定性。