温馨提示×

Ubuntu Jenkins如何进行集群搭建

小樊
42
2025-11-08 20:48:57
栏目: 智能运维

Ubuntu Jenkins集群搭建指南
Jenkins集群通过**主节点(Master)**负责任务调度与监控、**从节点(Agent/Slave)**执行具体构建任务的架构,提升构建效率与系统弹性。以下是Ubuntu环境下Jenkins集群的详细搭建步骤:

一、前置准备

  1. 安装Java环境:Jenkins基于Java开发,需提前安装OpenJDK 11(推荐)。
    在所有节点(主/从)上执行:

    sudo apt update
    sudo apt install -y openjdk-11-jdk
    java -version  # 验证安装(需显示11.x版本)
    
  2. 安装Jenkins
    在所有节点上添加Jenkins官方仓库并安装:

    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 start jenkins
    sudo systemctl enable jenkins
    

二、配置Jenkins主节点

  1. 访问管理界面
    浏览器输入http://<主节点IP>:8080,通过初始密码(查看/var/lib/jenkins/secrets/initialAdminPassword)完成解锁,进入Web界面。

  2. 安装必要插件
    进入Manage Jenkins > Manage Plugins,安装以下插件:

    • SSH Slaves:用于SSH方式连接从节点;
    • Pipeline:支持流水线任务;
    • Credentials Binding:安全管理凭据(如Git密码、Docker Hub token)。
  3. 配置主节点安全
    进入Manage Jenkins > Configure Global Security,启用安全性,选择Jenkins’ own user database作为安全领域,配置Role-Based Strategy授权策略(如区分管理员与普通用户权限)。

三、添加从节点(Slave)

从节点是实际执行构建任务的机器,需通过主节点管理。以下以SSH方式为例(推荐,无需暴露JNLP端口):

  1. 主节点添加从节点
    进入Manage Jenkins > Manage Nodes and Clouds > New Node,输入节点名称(如ubuntu-agent-01),选择Permanent Agent,点击OK
    配置以下参数:

    • Remote root directory:从节点上的工作目录(如/home/ubuntu/jenkins-agent);
    • Labels:节点标签(如ubuntudocker),用于任务定向分配(如docker标签的任务只会分发到带该标签的节点);
    • Usage:选择Use this node as much as possible(尽量使用此节点);
    • Launch method:选择Launch agents via SSH,点击Add添加SSH凭据(需输入从节点的用户名(如ubuntu)和私钥,私钥可通过ssh-keygen -t rsa生成并复制到从节点的~/.ssh/authorized_keys中)。
  2. 从节点准备工作
    在从节点上安装Java(同前置准备)和Jenkins代理(可选,若使用SSH方式无需单独安装):

    sudo apt update
    sudo apt install -y openjdk-11-jdk
    
  3. 验证从节点连接
    主节点添加节点后,点击Save,Jenkins会自动尝试通过SSH连接从节点。若连接成功,从节点状态会显示为Idle(空闲)。

四、配置分布式构建任务

  1. 创建Pipeline任务
    进入New Item,输入任务名称(如docker-build),选择Pipeline,点击OK

  2. 编写Pipeline脚本
    Pipeline section选择Pipeline script,输入以下脚本(示例:打印节点信息并执行简单构建):

    pipeline {
        agent {
            label 'ubuntu'  // 指定带'ubuntu'标签的从节点
        }
        stages {
            stage('Print Node Info') {
                steps {
                    sh 'echo "Running on node: ${NODE_NAME}"'
                    sh 'uname -a'
                }
            }
            stage('Sample Build') {
                steps {
                    sh 'mkdir -p build && echo "Build successful" > build/result.txt'
                }
            }
        }
        post {
            always {
                archiveArtifacts artifacts: 'build/result.txt', fingerprint: true
            }
        }
    }
    
  3. 运行任务并验证
    点击Build Now,进入任务详情页,查看Console Output,确认任务在指定的从节点上执行(如显示Running on node: ubuntu-agent-01)。

五、可选:配置负载均衡(提升高可用性)

若有多个主节点或从节点,可通过Nginx实现负载均衡,分发请求到多个Jenkins实例:

  1. 安装Nginx
    在负载均衡服务器上执行:

    sudo apt update
    sudo apt install -y nginx
    
  2. 配置Nginx
    编辑/etc/nginx/sites-available/default,添加以下内容(替换<master1-ip><master2-ip>为实际IP):

    upstream jenkins_cluster {
        server <master1-ip>:8080;
        server <master2-ip>:8080;
    }
    
    server {
        listen 80;
        server_name jenkins.yourdomain.com;
    
        location / {
            proxy_pass http://jenkins_cluster;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    
  3. 重启Nginx

    sudo systemctl restart nginx
    

    现在可通过http://jenkins.yourdomain.com访问负载均衡后的Jenkins集群。

六、验证集群状态

  1. 查看节点列表
    主节点进入Manage Jenkins > Manage Nodes and Clouds,确认所有从节点状态为Idle

  2. 查看任务分配
    创建带标签的任务,运行后进入Manage Jenkins > Manage Nodes and Clouds,点击从节点名称,查看Build History确认任务执行记录。

通过以上步骤,即可完成Ubuntu环境下Jenkins集群的搭建,实现构建任务的分布式执行。可根据实际需求扩展从节点数量、配置更复杂的负载均衡策略(如Keepalived)或集成Kubernetes(实现自动扩缩容)。

0