Jenkins在Ubuntu上的集群配置指南
Jenkins集群通过**主节点(Master)**负责任务调度、监控及插件管理,**从节点(Slave/Agent)**执行具体构建任务,提升构建效率与系统弹性。以下是Ubuntu环境下配置Jenkins集群的详细步骤:
sudo apt update
sudo apt install -y openjdk-11-jdk
java -version # 验证安装
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo "deb https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
sudo apt update
sudo apt install -y jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins # 开机自启
http://<主节点IP>:8080,按提示输入初始管理员密码(位于/var/lib/jenkins/secrets/initialAdminPassword)完成初始化。从节点无需安装Jenkins,仅需Java环境(步骤同上)。
安装必要插件:
进入Manage Jenkins → Manage Plugins,安装以下插件:
配置Master节点属性:
进入Manage Jenkins → Configure System,修改以下参数:
http://<主节点IP>:8080(供从节点访问)。进入Manage Jenkins → Manage Nodes and Clouds → New Node,配置如下:
ubuntu-slave-01)。Permanent Agent(固定代理)。/home/ubuntu/jenkins_agent)。ubuntu,用于任务定向分配,如Restrict where this project can be run中指定标签)。Use this node as much as possible(优先使用该节点)。Launch agents via SSH(推荐,安全且自动化)。在从节点上生成SSH密钥对,并将公钥添加到主节点:
ssh-keygen -t rsa -b 4096 # 一路回车,默认路径
ssh-copy-id ubuntu@<主节点IP> # 将公钥复制到主节点(替换为实际用户名)
测试SSH连接:
ssh ubuntu@<主节点IP> # 应无需密码直接登录
回到主节点的从节点配置页面,点击Save,Jenkins会自动生成启动命令。在从节点终端执行该命令(如):
java -jar /tmp/jenkins-agent.jar -jnlpUrl http://<主节点IP>:8080/computer/ubuntu-slave-01/slave-agent.jnlp -secret <生成的密钥> -workDir "/home/ubuntu/jenkins_agent"
若命令过期,可重新从主节点Manage Nodes页面获取最新命令。执行后,从节点状态应显示为Idle(空闲)。
New Item → 输入任务名称(如test-distributed-build)→ 选择Freestyle project → OK。Configure页面,勾选Restrict where this project can be run,输入从节点标签(如ubuntu)。Execute shell,输入简单命令(如echo "Running on $(hostname)")。Build Now,在控制台输出中查看任务是否在从节点执行(如显示Running on ubuntu-slave-01)。Load Balancer Plugin,将多个主节点组成集群,通过负载均衡器(如Nginx)分配任务,提升集群吞吐量。Keepalived实现主节点故障自动切换,配置虚拟IP(VIP),确保Jenkins服务持续可用。Manage Jenkins → Configure Global Security,启用Jenkins’ own user database(用户认证)。Credentials Binding Plugin安全存储敏感信息(如Git凭证、API密钥)。Jenkinsfile),支持多节点并行执行(如parallel指令),提升构建效率。通过以上步骤,即可在Ubuntu环境下完成Jenkins集群配置,实现构建任务的分布式执行与管理。