linux

Jenkins在Linux怎样实现分布式构建

小樊
43
2025-09-29 05:31:13
栏目: 智能运维

一、环境准备

二、安装与配置Jenkins Master

  1. 安装Jenkins
    以CentOS为例,通过官方YUM仓库安装:

    sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
    sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
    sudo yum install jenkins -y
    sudo systemctl start jenkins && sudo systemctl enable jenkins
    

    Ubuntu用户可通过APT仓库安装(替换对应命令即可)。

  2. 配置Master节点

    • 访问http://<Master_IP>:8080,使用初始管理员账号登录。
    • 进入Manage Jenkins → Manage Plugins,安装必要插件(如SSH Slaves(用于SSH连接)、Docker Pipeline(可选,容器化构建)、Kubernetes Continuous Deploy(可选,K8s集群管理))。
    • 进入Manage Jenkins → Configure Global Security,开启TCP port for JNLP agents(默认50000),确保Slave能通过该端口连接。

三、添加与配置Slave节点

方式1:SSH方式(推荐,安全便捷)

  1. Slave节点准备

    • 安装Java环境:
      sudo yum install -y java-11-openjdk-devel  # CentOS
      sudo apt-get install -y openjdk-11-jdk    # Ubuntu
      
    • 确保Slave节点开放SSH端口(sudo systemctl start sshd && sudo systemctl enable sshd)。
  2. Master添加Slave节点

    • 进入Manage Jenkins → Manage Nodes and Clouds → New Node
    • 输入节点名称(如slave01),选择Permanent Agent,点击“OK”。
    • 配置节点参数:
      • Remote root directory:设置Slave的工作目录(如/home/jenkins/agent,需提前创建且具备写入权限)。
      • Number of executors:设置并发执行任务数(如2,根据Slave资源调整)。
      • Launch method:选择Launch agents via SSH
      • Host:填写Slave节点的IP或域名。
      • Credentials:添加SSH私钥(需提前在Slave节点生成~/.ssh/id_rsa.pub,并在Master节点通过“Credentials”添加该私钥)。
    • 点击“Save”。
  3. Slave节点启动Agent

    • 在Master节点的Slave配置页面,复制Agent Command(如java -jar /tmp/agent.jar -jnlpUrl http://master_ip:8080/computer/slave01/slave-agent.jnlp -secret your_secret -workDir "/home/jenkins/agent")。
    • 登录Slave节点,执行该命令,若看到“Agent successfully connected and online”,则说明连接成功。

方式2:JNLP方式(传统,适用于无SSH访问场景)

  1. Slave节点获取JNLP文件

    • 登录Master节点的Jenkins Web界面,进入Manage Jenkins → Manage Nodes and Clouds,选择目标Slave节点,点击“Launch agent”。
    • 浏览器会下载slave-agent.jnlp文件。
  2. Slave节点启动Agent

    • 在Slave节点执行以下命令(替换slave-agent.jnlp路径和workDir):
      java -jar /path/to/slave-agent.jnlp -workDir "/home/jenkins/agent"
      
    • 若成功,Slave节点会显示“Online”状态。

四、配置分布式构建任务

  1. 创建任务
    进入Jenkins主页,点击“New Item”,输入任务名称(如distributed-build),选择“Freestyle project”或“Pipeline”,点击“OK”。

  2. 关联Slave节点

    • Freestyle项目:进入Restrict where this project can be run,勾选该选项,在输入框中填写Slave节点的标签(如linux-agent,需在Slave配置时设置)或节点名称(如slave01)。
    • Pipeline项目:在Jenkinsfile中指定节点标签,示例如下:
      pipeline {
        agent {
          node {
            label 'linux-agent'  // 与Slave节点标签一致
          }
        }
        stages {
          stage('Build') {
            steps {
              sh 'echo "Building on $(hostname)"'
              sh 'mvn clean package'  // 示例:Maven构建
            }
          }
        }
      }
      
    • 配置完成后,点击“Save”。

五、验证与监控

  1. 触发构建
    在任务页面点击“Build Now”,观察任务是否被分配到指定的Slave节点执行。

  2. 监控进度

    • 进入Manage Jenkins → Manage Nodes and Clouds,查看Slave节点的状态(Online/Offline)及执行器占用情况。
    • 在任务页面点击“Console Output”,查看构建日志,确认任务在Slave节点执行(日志中会显示Slave的主机名)。

六、注意事项

0
看了该问题的人还看了